KR20100038564A - Method and system for permanent computing using non-volatile random access memory - Google Patents

Method and system for permanent computing using non-volatile random access memory Download PDF

Info

Publication number
KR20100038564A
KR20100038564A KR1020080097581A KR20080097581A KR20100038564A KR 20100038564 A KR20100038564 A KR 20100038564A KR 1020080097581 A KR1020080097581 A KR 1020080097581A KR 20080097581 A KR20080097581 A KR 20080097581A KR 20100038564 A KR20100038564 A KR 20100038564A
Authority
KR
South Korea
Prior art keywords
value
power
register
nonvolatile ram
program
Prior art date
Application number
KR1020080097581A
Other languages
Korean (ko)
Other versions
KR100994609B1 (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 KR1020080097581A priority Critical patent/KR100994609B1/en
Priority to PCT/KR2009/005684 priority patent/WO2010041852A2/en
Priority to US13/122,722 priority patent/US20110197018A1/en
Publication of KR20100038564A publication Critical patent/KR20100038564A/en
Application granted granted Critical
Publication of KR100994609B1 publication Critical patent/KR100994609B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PURPOSE: A permanent computing method using a non-volatile random access memory and a system thereof are provided to give permanence to a program. CONSTITUTION: A non-volatile RAM(Random Access Memory)(120) does not lose stored even though a power is disconnected, enables a byte unit based address access, and stores register and state values while executing a program. When a power is resupplied after disconnection, a processor(110) calls up the register and state values and restores the current state into a state before the power disconnection. A power disconnection detection unit detects an event of which supplied power is lower than a critical value. When sensing the event, the non-volatile RAM stores the register and state values.

Description

비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템 {METHOD AND SYSTEM FOR PERMANENT COMPUTING USING NON-VOLATILE RANDOM ACCESS MEMORY}Persistent Computing Method and System Using Nonvolatile RAM {METHOD AND SYSTEM FOR PERMANENT COMPUTING USING NON-VOLATILE RANDOM ACCESS MEMORY}

본 발명의 실시예들은 물리적인 간섭에 관계 없이 영속적인 컴퓨팅 환경을 제공하는 방법 및 시스템에 관한 것이다.Embodiments of the present invention are directed to a method and system for providing a persistent computing environment regardless of physical interference.

플래시 메모리는 전원이 공급되지 않아도 저장된 데이터가 유지되는 비휘발성 메모리 (non-volatile memory)로서, 칩 전체 혹은 일부를 전기적으로 (electrically) 소거하고 (erase) 다시 쓸(re-write) 수 있는 기능을 제공한다.Flash memory is a non-volatile memory that retains stored data even when power is not supplied. The flash memory is capable of electrically erasing and rewriting all or part of a chip. to provide.

플래시 메모리는 메모리 셀(cell) 어레이(array)의 구조에 따라 NAND, NOR 등의 여러 가지 타입으로 분류될 수 있다. 여기서 메모리 셀은 1비트의 데이터를 저장할 수 있는 최소 단위이다.Flash memories may be classified into various types such as NAND and NOR according to the structure of an array of memory cells. The memory cell is the smallest unit that can store one bit of data.

NAND 플래시 메모리는 고집적화 및 대용량화가 가능하므로 기존의 하드 디스크를 대체할 소자로서 메모리 시장에서 급격히 주목을 받고 있다. 현재 NAND 플래시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 모바일 기기의 저장매체로 널리 이용되고 있다.NAND flash memory is rapidly attracting attention in the memory market as a device to replace the existing hard disk because of the high integration and large capacity. NAND flash memory is widely used as a storage medium for portable mobile devices such as mobile phones, digital cameras, MP3 players, camcorders, and PDAs.

그러나, 플래시 메모리에 데이터를 읽고 쓰는 시간은 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)에 비해 데이터를 읽고 쓰는 시간이 길다. 또한 플래시 메모리에 저장된 데이터를 소거하는 시간 및 플래시 메모리에 데이터를 저장하는 시간은 플래시 메모리에 저장된 데이터를 읽는 시간보다 길다.However, the time for reading and writing data in the flash memory is longer than that for static random access memory (SRAM) or dynamic random access memory (DRAM). Also, the time for erasing data stored in the flash memory and the time for storing data in the flash memory are longer than the time for reading the data stored in the flash memory.

이러한 플래시 메모리에 비하여, 최근 비휘발성이면서도 바이트 단위로 주소 접근이 가능(byte addressable)하고, 데이터를 읽고 쓰는 시간이 기존의 SRAM 또는 DRAM과 유사한 비휘발성 램 (Non-Volatile Random Access Memory, NVRAM)이 개발되어 그 사용 영역이 확대되고 있다.Compared to such flash memory, non-volatile random access memory (NVRAM), which is recently nonvolatile and byte addressable, and reads and writes data, is similar to that of conventional SRAM or DRAM. The area of use has been expanded.

본 발명의 일 실시예에 따르면 비휘발성 램 상에서 프로그램을 수행함으로써 프로그램에 대하여 영속성을 제공하는 시스템 소프트웨어가 제공된다.According to an embodiment of the present invention, there is provided system software that provides persistence for a program by executing the program on a nonvolatile RAM.

본 발명의 일 실시예에 따르면 프로그램을 비휘발성 램 상에서 수행함으로써 수행 시간의 오버헤드 없이 프로그램을 전원 차단 이전의 마지막 시점으로 완벽하게 복구하여 영속적 컴퓨팅을 제공할 수 있다.According to an embodiment of the present invention, by executing the program on the nonvolatile RAM, the program can be completely restored to the last time point before powering off without the overhead of execution time, thereby providing persistent computing.

본 발명의 일 실시예에 따른 컴퓨팅 시스템은 프로그램을 수행하는 프로세서, 및 전원이 차단되어도 저장된 데이터를 잃지 않으며, 바이트 단위로 주소 접근이 가능하고, 상기 프로그램이 수행되는 동안 발생하는 레지스터의 값 및 주변 장치의 상태 값을 저장하는 비휘발성 램을 포함할 수 있다. 상기 프로세서는 상기 전원이 차단된 후 재 공급되면 상기 비휘발성 램에 저장된 상기 레지스터의 값 및 상기 상태 값을 호출하고 상기 전원이 차단되기 전의 상태를 복원할 수 있다.Computing system according to an embodiment of the present invention, the processor for performing the program, and the stored data does not lose even if the power is cut off, the address is accessible by byte unit, the value and the periphery of the register generated during the program execution It may include a nonvolatile RAM that stores the state value of the device. The processor may call the value of the register and the state value stored in the nonvolatile RAM when the power is supplied again and restore the state before the power is turned off.

본 발명의 일 실시예에 따른 컴퓨팅 방법은 프로그램이 수행되는 동안 발생하는 레지스터의 값 및 주변 장치의 값을 비휘발성 램 - 상기 비휘발성 램은 전원이 차단되어도 저장된 데이터를 잃지 않으며, 바이트 단위로 주소 접근이 가능함 - 에 저장하는 단계, 상기 전원이 차단된 후 재 공급되는 이벤트를 감지하는 단계, 상기 이벤트가 감지되면 상기 비휘발성 램에 저장된 상기 레지스터의 값 및 상기 상태 값을 호출하는 단계, 및 상기 호출된 상기 레지스터의 값 및 상기 상태 값에 기초하여 상기 전원이 차단되기 전의 상태를 복원하는 단계를 포함할 수 있다.Computing method according to an embodiment of the present invention non-volatile RAM to the value of the register and the peripheral device that occurs while the program is running-the non-volatile RAM does not lose the stored data even if the power is off, address in bytes Accessible; detecting an event that is resupplyed after the power is cut off; recalling the value of the register and the state value stored in the non-volatile RAM when the event is detected; and Restoring a state before the power is cut based on the value of the called register and the state value.

휘발성 램으로만 메모리가 구성된 시스템에서 갑작스럽게 전원이 차단될 시 프로그램의 데이터와 상태가 보존되지 못하여 중요한 작업을 하고 있던 경우 큰 손실이 발생하였다.In case of sudden power failure in a system configured only with volatile RAM, the program's data and state could not be preserved, causing significant loss.

본 발명의 일 실시예에 따르면 비휘발성 램을 메모리의 전부 또는 일부로 사용하고 영속적으로 수행할 프로그램의 데이터와 상태를 비휘발성램에 보존하기 때문에 레지스터 정보와 간단한 복구 절차를 거치면 별도의 큰 비용 없이 완전히 복구하게 되므로 영속적인 컴퓨팅이 가능하여 사용자에게 신뢰성과 안정성 및 편리성을 제공한다.According to an embodiment of the present invention, since the nonvolatile RAM is used as all or part of the memory, and the data and state of the program to be executed permanently are preserved in the nonvolatile RAM, the register information and the simple recovery procedure are completely eliminated without any significant cost. Recovery allows for persistent computing, providing users with reliability, stability and convenience.

본 발명의 일 실시예에 따르면 비휘발성 램에 프로그램이 동작하기 위한 모든 정보가 저장되어 있으므로 레지스터 상태 값만 복구하면 전원 차단 이전 상태에 놓이기 때문에 시스템의 초기화나 부팅 과정 없이 매우 빠르게 사용자가 시스템을 사용할 수 있어 편리성을 제공한다. According to an embodiment of the present invention, since all information for operating a program is stored in the nonvolatile RAM, restoring only the register state value puts the state before power down, so that the user can use the system very quickly without initializing or booting the system. Provide convenience.

본 발명의 일 실시예에 따르면 운영 체제와 같은 시스템 구동을 위한 중요 시스템 소프트웨어가 비휘발성 램 상에서 수행되는 경우에는 시스템을 멈추었다가 재 구동 시키는 시간은 레지스터 값을 복원시키는 수 초 정도로 매우 짧으므로, 시스템이 사용되지 않고 있는 동안 전원을 꺼 두었다가 다시 사용하고자 할 때 전원을 공급하는 경우에도 큰 오버헤드가 발생하지 않는다. 따라서 본 발명의 일 실시예에 따르면 에너지를 절감할 수 있다.According to an embodiment of the present invention, when critical system software for operating a system such as an operating system is executed on a nonvolatile RAM, the time to stop and restart the system is very short, such as several seconds to restore the register value. This overhead does not occur even when the power is turned off and then used again when the power is not used. Therefore, according to an embodiment of the present invention can save energy.

이하에서, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)을 도시하는 도면이다.1 illustrates a computing system 100 in accordance with one embodiment of the present invention.

컴퓨팅 시스템 (100)은 프로세서 (110), 비휘발성 램 (120) 및 보조 전원 (130)을 포함한다.Computing system 100 includes a processor 110, a nonvolatile RAM 120, and an auxiliary power supply 130.

비휘발성 램 (120)은 바이트 단위의 주소 접근이 가능하므로 프로세서 (110)가 인식하는 논리 주소 (logical address)와 일치하는 물리 주소 (physical address)를 이용하여 접근될 수 있다. 따라서 프로세서 (110)는 주소 변환 (address translation) 없이 프로세서 (110)가 인식하는 논리 주소 공간 (logical address space)을 이용하여 비휘발성 램 (120)을 인식할 수 있다. 이러한 비휘발성 램 (120)의 특성에 의하여 비휘발성 램 (120) 상에서 프로그램이 수행될 수 있다.Since the nonvolatile RAM 120 may access an address in units of bytes, the nonvolatile RAM 120 may be accessed using a physical address that matches a logical address recognized by the processor 110. Accordingly, the processor 110 may recognize the nonvolatile RAM 120 using a logical address space recognized by the processor 110 without address translation. Due to the characteristics of the nonvolatile RAM 120, a program may be performed on the nonvolatile RAM 120.

비휘발성 램 (120)은 비휘발성의 특징과 랜덤 접근의 특징을 가진다. 이러한 비휘발성 램 (120)의 예로는 FRAM (Ferroelectric RAM), MRAM (Magnetoresistive RAM), PRAM (Phase-change RAM) 등이 알려져 있으나 본 발명은 이에 국한되지 않음은 당업자에게 자명하다.Nonvolatile RAM 120 has the characteristics of nonvolatile and random access. Examples of such nonvolatile RAM 120 are known as ferroelectric RAM (FRAM), magnetoresistive RAM (MRAM), phase-change RAM (PRAM), etc., but the present invention is not limited thereto.

비휘발성 램 (120)은 전원이 차단되더라도 저장된 데이터를 영구적으로 보존 할 수 있다. 프로그램이 수행되던 도중 전원이 차단되면 프로세서 (110)는 휘발성 데이터인 레지스터 (111) (프로세서 (110)에 포함되어 있는 메모리)의 상태 값 및 주변 장치들 (도시되지 않음)의 상태 값을 비휘발성 램 (120)에 옮겨 저장할 수 있다. 다시 전원이 공급되면 프로세서 (110)는 비휘발성 램 (120)에 저장된 상태 값을 레지스터 (111) 및 장치에 복구시킬 수 있다. 이 때 프로그램은 전원 차단 이전의 상태에서 다시 수행되는 것과 마찬가지이므로 영속적인 컴퓨팅이 가능하다.The nonvolatile RAM 120 may permanently preserve stored data even when power is cut off. When the power is cut off while the program is being executed, the processor 110 may change the state value of the register 111 (memory included in the processor 110), which is volatile data, and the state value of peripheral devices (not shown). May be transferred to RAM 120 and stored. When the power is supplied again, the processor 110 may restore the state value stored in the nonvolatile RAM 120 to the register 111 and the device. At this point, the program is the same as if it were run again before the power was shut down, allowing for persistent computing.

컴퓨팅 시스템 (100)은 전원이 갑작스럽게 차단될 때에도 완벽하게 이전 상태로 복구되므로 데이터의 손실 없이 안전하게 프로그램을 수행할 수 있다.Computing system 100 is completely restored to its previous state even when the power is suddenly cut off, so that the program can be safely executed without losing data.

도 1의 컴퓨팅 시스템 (100)은 휘발성 램을 포함하지 않고 비휘발성 램 (120)이 전체 메모리 영역에 대응하는 실시예이다. 이러한 실시예는 전력을 적게 소모하므로 임베디드 시스템에 더욱 적합할 수 있다.The computing system 100 of FIG. 1 is an embodiment in which the nonvolatile RAM 120 corresponds to the entire memory area without including the volatile RAM. This embodiment consumes less power and may therefore be more suitable for embedded systems.

프로세서 (110) 내부의 레지스터(register) (111)에는 프로그램 수행 도중 연산 값이 저장된다. 레지스터 (111)는 전원이 차단되면 저장된 데이터를 유실하는 휘발성 메모리이다. 비휘발성 램 (120)에는 프로그램의 데이터와 상태 정보가 저장되어 있고 프로세서 (110)는 주소를 이용하여 비휘발성 램 (120)에 접근한다. An operation value is stored in a register 111 inside the processor 110 during program execution. The register 111 is a volatile memory that loses stored data when power is cut off. The nonvolatile RAM 120 stores program data and state information, and the processor 110 accesses the nonvolatile RAM 120 using an address.

축전기 (131) 및 전압 모니터/덤프 매니저 (132)는 프로세서 (110)가 휘발성인 레지스터 (111)의 내용을 비휘발성 램 (120)에 저장할 수 있도록 동작한다. 전압 모니터/덤프 매니저 (132)는 전압이 기준값 이하로 떨어지면 컴퓨팅 시스템 (100)의 전원이 차단된 것으로 간주하고 프로세서 (110)를 제어하여 레지스터 (111)의 내용을 비휘발성 램 (120)의 미리 정해진 영역에 옮겨 저장한다. 이로써 비휘발성 램 (120)에 저장된 값은 전원 차단 후에도 보존될 수 있다. 축전기 (131)는 전압 모니터/덤프 매니저 (132) 또는 프로세서 (110)가 레지스터 (111)의 내용을 안전하게 비휘발성 램 (120)에 저장하는 데 걸리는 시간 동안 컴퓨팅 시스템 (100)의 전원 전압을 유지하기 위한 장치이다. 전압 모니터/덤프 매니저 (132)는 하드웨어뿐만 아니라 소프트웨어로도 구현될 수 있다.Capacitor 131 and voltage monitor / dump manager 132 operate to allow processor 110 to store the contents of volatile register 111 in nonvolatile RAM 120. The voltage monitor / dump manager 132 considers the computing system 100 to be powered off when the voltage drops below the reference value and controls the processor 110 to preview the contents of the register 111 in advance of the nonvolatile RAM 120. Move to the designated area and save. As a result, the value stored in the nonvolatile RAM 120 may be preserved even after the power is cut off. Capacitor 131 maintains the power supply voltage of computing system 100 for the time it takes for voltage monitor / dump manager 132 or processor 110 to securely store the contents of register 111 in nonvolatile RAM 120. It is an apparatus for doing this. The voltage monitor / dump manager 132 may be implemented in software as well as hardware.

도 1의 실시예와 같이 비휘발성 램 (120)이 메모리 전 영역에 대응되는 환경에서는 컴퓨팅 시스템 (100)에서 수행되는 모든 프로그램이 비휘발성 램 (120) 상에서 수행될 수 있으므로 컴퓨팅 시스템 (100)이 레지스터 (111)의 내용을 비휘발성 램 (120)에 저장하면 모든 프로그램에 대한 영속성이 보장된다.In an environment in which the nonvolatile RAM 120 corresponds to the entire memory area as shown in the embodiment of FIG. 1, all programs executed in the computing system 100 may be executed on the nonvolatile RAM 120. Storing the contents of register 111 in nonvolatile RAM 120 ensures persistence for all programs.

도 2는 본 발명의 다른 실시예에 따른 컴퓨팅 시스템 (200)을 도시하는 도면이다.2 is a diagram illustrating a computing system 200 according to another embodiment of the present invention.

컴퓨팅 시스템 (200)은 프로세서 (210), 비휘발성 램 (220), 보조 전원 (230) 및 휘발성 램 (240)을 포함한다.Computing system 200 includes a processor 210, a nonvolatile RAM 220, an auxiliary power supply 230, and a volatile RAM 240.

도 2의 실시예에서 메모리 영역은 비휘발성 램 (220) 및 휘발성 램 (240)에 의하여 구현되며, 프로세서 (210)가 인식하는 주소 공간은 비휘발성 램 (220) 및 휘발성 램 (240)에 대응한다. 일반적인 퍼스널 컴퓨터, 서버 시스템 등의 어플리케이션에서는 휘발성 램 (240) 및 비휘발성 램 (220)이 혼용되어 이용될 수 있다.In the embodiment of FIG. 2, the memory area is implemented by the nonvolatile RAM 220 and the volatile RAM 240, and the address space recognized by the processor 210 corresponds to the nonvolatile RAM 220 and the volatile RAM 240. do. In general applications such as personal computers and server systems, the volatile RAM 240 and the nonvolatile RAM 220 may be used interchangeably.

프로세서 (210)에 의하여 수행되는 프로그램은 휘발성 램 (240) 또는 비휘발성 램 (220) 상에서 수행될 수 있다. 프로세서 (210)는 레지스터 (211)에 저장된 내용을 필요에 따라 휘발성 램 (240) 또는 비휘발성 램 (220)에 저장할 수 있다. 휘발성 램 (240)은 전원이 차단되면 저장된 데이터를 유실할 수 있으므로 프로세서 (210)는 데이터 보존 명령 또는 영속성 유지 명령을 설정하고, 데이터 보존 명령 또는 영속성 유지 명령이 선언되면 레지스터 (211)에 저장된 내용을 비휘발성 램 (220)에 저장함으로써 영속성을 도모할 수 있다.The program executed by the processor 210 may be executed on the volatile RAM 240 or the nonvolatile RAM 220. The processor 210 may store the contents stored in the register 211 in the volatile RAM 240 or the nonvolatile RAM 220 as necessary. Since the volatile RAM 240 may lose stored data when the power is cut off, the processor 210 may set a data retention instruction or a persistence instruction, and if the data retention instruction or a persistence instruction is declared, the contents stored in the register 211. Can be stored in the nonvolatile RAM 220 to achieve durability.

도 2의 실시예에서는 프로세서(210)가 레지스터 (211) 또는 휘발성 램 (240)에 저장된 내용 중 프로그램의 복원에 필요한 내용을 비휘발성 램 (220)에 저장하는 특별 명령을 선언할 수 있다. 본 명세서에서는 이러한 특별 명령을 데이터 보존 명령 또는 영속성 유지 명령이라 명명하기로 한다.In the embodiment of FIG. 2, the processor 210 may declare a special instruction for storing, in the nonvolatile RAM 220, contents necessary for restoring a program among contents stored in the register 211 or the volatile RAM 240. In this specification, such a special command will be referred to as a data preservation command or a persistence command.

보조 전원 (230)은 축전기 (231) 및 전압 모니터/덤프 매니저 (232)를 포함한다. 축전기 (231)는 전원이 차단되는 이벤트가 감지되는 경우 컴퓨팅 시스템 (200)의 전원 전압을 유지하는 기능을 수행한다. 전압 모니터/덤프 매니저 (232)는 전원 전압을 모니터하며 필요에 따라 데이터 보존 명령 또는 영속성 유지 명령을 생성할 수도 있다.The auxiliary power supply 230 includes a capacitor 231 and a voltage monitor / dump manager 232. The capacitor 231 maintains the power supply voltage of the computing system 200 when an event in which power is cut off is detected. The voltage monitor / dump manager 232 monitors the supply voltage and may generate data retention commands or persistence commands as needed.

도 3은 도 1의 컴퓨팅 시스템 (100)에서 수행되는 컴퓨팅 방법의 일 예를 도시하는 동작 흐름도이다.3 is an operational flow diagram illustrating an example of a computing method performed in the computing system 100 of FIG. 1.

컴퓨팅 시스템 (100)은 비휘발성 램 (120) 상에서 프로그램을 수행한다 (S310). 프로그램은 비휘발성 램 (120) 상에서 생성되고 수행될 수 있다. 이 때 컴퓨팅 시스템 (100)은 안정적으로 동작한다.The computing system 100 performs a program on the nonvolatile RAM 120 (S310). The program may be created and executed on nonvolatile RAM 120. At this time, the computing system 100 operates stably.

전압 모니터/덤프 매니저 (132)가 전원 차단을 감지(S320)하면 덤프 매니저 부분을 구동한다 (S330). 이 때 프로그램은 비휘발성 램 (120) 상에서 수행되므로 컴퓨팅 시스템 (100)은 큰 비용 없이 프로그램 상태 정보를 비휘발성 램 (120)에 저장할 수 있다. 축전기 (131)는 레지스터 (111)의 상태 값이 비휘발성 램 (120)에 저장되는 동안 컴퓨팅 시스템 (100)의 전원 전압을 유지할 수 있다. 덤프 매니저는 레지스터 (111)의 내용을 비휘발성 램 (120) 상의 미리 약속된 주소에 저장한다.When the voltage monitor / dump manager 132 detects a power cut (S320), the voltage monitor / dump manager 132 drives the dump manager part (S330). In this case, since the program is executed on the nonvolatile RAM 120, the computing system 100 may store program state information in the nonvolatile RAM 120 at a high cost. Capacitor 131 may maintain the power supply voltage of computing system 100 while the state value of register 111 is stored in nonvolatile RAM 120. The dump manager stores the contents of the register 111 at a predetermined address on the nonvolatile RAM 120.

이 때 수행될 프로그램에 대한 모든 정보가 비휘발성 램 (120)에 안전하게 저장되어 영속적으로 보존될 수 있다. 컴퓨팅 시스템 (100)의 전원은 축전기 (131)의 전하가 소진되거나 덤프 매니저가 명시적으로 셧다운 명령을 내리면 차단된다.In this case, all the information about the program to be executed may be safely stored in the nonvolatile RAM 120 and stored permanently. Power to computing system 100 is shut off when the charge in capacitor 131 is exhausted or when the dump manager explicitly issues a shutdown command.

전압 모니터가 전원 재공급을 감지 (S340)하면 컴퓨팅 시스템 (100)은 비휘발성 램 (120) 상의 미리 약속된 주소에 저장된 정보를 레지스터 (111)로 호출한다 (S350). 이 때 호출되는 정보는 레지스터 (111)의 값 및 상태 값을 포함할 수 있다.When the voltage monitor detects power resupply (S340), the computing system 100 calls information stored at a predetermined address on the nonvolatile RAM 120 to the register 111 (S350). The information called at this time may include the value of the register 111 and the state value.

컴퓨팅 시스템 (100)은 호출된 값에 기초하여 전원이 차단되기 전의 컴퓨팅 시스템 (100)의 상태를 복원한다 (S360).The computing system 100 restores the state of the computing system 100 before the power is cut off based on the called value (S360).

도 4는 도 2의 컴퓨팅 시스템 (200)에서 수행되는 컴퓨팅 방법의 일 예를 도시하는 동작 흐름도이다.4 is a flowchart illustrating an example of a computing method performed in the computing system 200 of FIG. 2.

컴퓨팅 시스템 (200)은 휘발성 램 (240) 상에서 프로그램을 수행한다 (S410).The computing system 200 executes a program on the volatile RAM 240 (S410).

프로세서 (210)의 보존 명령 또는 영속성 유지 명령을 수신(S420)하면 컴퓨 팅 시스템 (210)은 영속성이 지정된 프로그램을 검색한다 (S430).When the preservation command or the persistence command of the processor 210 is received (S420), the computing system 210 searches for a program for which the persistence is designated (S430).

보존 명령은 제한된 것은 아니지만 시스템 호출 등의 명령을 이용하여 구현될 수 있으며, 프로세서(210)뿐만 아니라 전압 모니터/덤프 매니저 (232)에 의하여 생성될 수도 있다.The preservation instructions may be implemented using instructions such as, but not limited to, system calls, and may be generated by the voltage monitor / dump manager 232 as well as the processor 210.

컴퓨팅 시스템 (200)은 단계 (S430)에서 영속성이 지정된 프로그램을 검색하고 상기 검색된 프로그램에 대응하는 데이터 및 상태 정보가 저장된 휘발성 램 (240)의 주소를 획득한다.In operation S430, the computing system 200 searches for a program having a designated persistence, and obtains an address of the volatile RAM 240 in which data and state information corresponding to the retrieved program are stored.

컴퓨팅 시스템 (200)은 휘발성 램 (240)의 상기 획득된 주소로부터 프로그램에 대응하는 데이터 및 상태 정보를 읽을 수 있다. 컴퓨팅 시스템 (200) 또는 덤프 매니저 (232)는 상기 읽은 데이터 및 상태 정보를 데이터 보존 명령에 따라 비휘발성 램 (220)에 저장할 수 있다.The computing system 200 may read data and state information corresponding to the program from the obtained address of the volatile RAM 240. The computing system 200 or the dump manager 232 may store the read data and state information in the nonvolatile RAM 220 according to a data preservation command.

보존 명령은 여러 방법으로 구현될 수 있으나 종래의 fork 시스템 호출과 유사한 형태로 구현될 수도 있다. 영속성 유지 대상으로 지정된 프로그램은 비휘발성 램 (220) 상에 저장되므로 전원이 차단되어도 영속성을 유지할 수 있다.Preservation commands can be implemented in a number of ways, but can also be implemented in a form similar to conventional fork system calls. Since the program designated as the persistence maintenance target is stored on the nonvolatile RAM 220, the persistence may be maintained even when the power is cut off.

컴퓨팅 시스템 (200)은 영속성 유지 대상으로 지정된 프로그램을 비휘발성 램 (220) 상에서 수행한다 (S440).The computing system 200 executes a program designated as a persistence target on the nonvolatile RAM 220 (S440).

이 때 만일 전압 모니터 (232)에 의하여 전원 차단 이벤트가 감지되면 상기 도 3의 단계 (S320) 내지 단계 (S360)와 유사한 과정을 통해 프로그램의 영속성이 유지될 수 있다. 이 때 필요에 따라 레지스터 (211)의 값이 비휘발성 램 (220)에 저장될 수 있다.At this time, if a power off event is detected by the voltage monitor 232, the program may be maintained through a process similar to the steps S320 to S360 of FIG. 3. At this time, if necessary, the value of the register 211 may be stored in the nonvolatile RAM 220.

컴퓨팅 시스템 (200)이 프로그램에 대한 영속성을 유지할 필요가 없다고 판단하면, 컴퓨팅 시스템 (200)은 프로그램에 대한 보존 해제 명령을 내릴 수 있다.If the computing system 200 determines that there is no need to maintain persistence for the program, the computing system 200 may issue an unconservation command for the program.

보존 해제 명령이 수신되면 (S450) 컴퓨팅 시스템 (200)은 휘발성 램 (240) 상에서 상기 프로그램을 수행할 수 있다. 이 때 컴퓨팅 시스템 (200)은 비휘발성 램 (220)에 저장된 상기 프로그램의 데이터 및 상태 정보를 휘발성 램 (240)에 저장할 수 있다. 또는 컴퓨팅 시스템 (200)은 상기 프로그램의 데이터 및 상태 정보를 비휘발성 램 (220)에 저장하되 프로그램 관리를 위한 데이터 구조에 영속성이 해제되었음을 표시할 수도 있다.When the preservation release command is received (S450), the computing system 200 may execute the program on the volatile RAM 240. In this case, the computing system 200 may store data and state information of the program stored in the nonvolatile RAM 220 in the volatile RAM 240. Alternatively, the computing system 200 may store data and state information of the program in the nonvolatile RAM 220 and indicate that persistence is released in a data structure for program management.

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

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)을 도시하는 도면이다.1 illustrates a computing system 100 in accordance with one embodiment of the present invention.

도 2는 본 발명의 다른 실시예에 따른 컴퓨팅 시스템 (200)을 도시하는 도면이다.2 is a diagram illustrating a computing system 200 according to another embodiment of the present invention.

도 3은 도 1의 컴퓨팅 시스템 (100)에서 수행되는 컴퓨팅 방법의 일 예를 도시하는 동작 흐름도이다.3 is an operational flow diagram illustrating an example of a computing method performed in the computing system 100 of FIG. 1.

도 4는 도 2의 컴퓨팅 시스템 (200)에서 수행되는 컴퓨팅 방법의 일 예를 도시하는 동작 흐름도이다.4 is a flowchart illustrating an example of a computing method performed in the computing system 200 of FIG. 2.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110: 프로세서110: processor

120: 비휘발성 램120: nonvolatile RAM

130: 보조 전원130: auxiliary power

Claims (12)

프로그램을 수행하는 프로세서; 및A processor for executing a program; And 전원이 차단되어도 저장된 데이터를 잃지 않으며, 바이트 단위로 주소 접근이 가능하고, 상기 프로그램이 수행되는 동안 발생하는 레지스터의 값 및 주변 장치의 상태 값을 저장하는 비휘발성 램Non-volatile RAM that does not lose the stored data even when the power is cut, access address by byte, and store the register value and the status value of peripheral device that occur while the program is running 을 포함하고,Including, 상기 프로세서는 상기 전원이 차단된 후 재공급되면 상기 비휘발성 램에 저장된 상기 레지스터의 값 및 상기 상태 값을 호출하고 상기 전원이 차단되기 전의 상태를 복원하는 컴퓨팅 시스템.And the processor recalls the value of the register and the state value stored in the nonvolatile RAM when the power is supplied again after the power is cut off, and restores the state before the power is cut off. 제1항에 있어서,The method of claim 1, 상기 전원의 공급 전압이 임계치보다 작은 이벤트를 감지하는 전원 차단 검출부A power cutoff detection unit for detecting an event in which the power supply voltage of the power supply is smaller than a threshold value 를 더 포함하고,More, 상기 비휘발성 램은The nonvolatile RAM is 상기 이벤트가 감지되면 상기 레지스터의 값 및 상기 상태 값을 저장하는 컴퓨팅 시스템.And store the value of the register and the state value when the event is detected. 제2항에 있어서,The method of claim 2, 상기 이벤트가 감지되면 기준 시간 동안 상기 전원의 전압을 유지하는 보조 전원Auxiliary power source that maintains the voltage of the power source for a reference time when the event is detected 을 더 포함하고,More, 상기 비휘발성 램은 상기 기준 시간 동안 상기 레지스터의 값 및 상기 상태 값을 저장하는 컴퓨팅 시스템.And the non-volatile RAM stores the value of the register and the state value during the reference time. 제1항에 있어서,The method of claim 1, 상기 프로세서는 보존 명령을 수행하고,The processor performs a preservation instruction, 상기 비휘발성 램은 상기 보존 명령에 따라 상기 레지스터의 값 및 상기 상태 값을 저장하는 컴퓨팅 시스템.And the nonvolatile RAM stores a value of the register and the state value according to the preservation command. 제4항에 있어서,The method of claim 4, wherein 상기 프로세서는The processor is 상기 보존 명령을 명시적으로 또는 암시적으로 수행하는 컴퓨팅 시스템.Computing system that explicitly or implicitly performs the preservation instructions. 제4항에 있어서,The method of claim 4, wherein 상기 전원이 차단되면 저장된 데이터를 잃는 휘발성 메모리Volatile memory that loses stored data when power is interrupted 를 더 포함하고,More, 상기 비휘발성 램은 상기 보존 명령에 따라 상기 휘발성 메모리에 저장된 데이터를 저장하는 컴퓨팅 시스템.And the nonvolatile RAM stores data stored in the volatile memory according to the preservation command. 프로그램이 수행되는 동안 발생하는 레지스터의 값 및 주변 장치의 값을 비휘발성 램 - 상기 비휘발성 램은 전원이 차단되어도 저장된 데이터를 잃지 않으며, 바이트 단위로 주소 접근이 가능함 - 에 저장하는 단계;Storing a value of a register and a value of a peripheral device generated while a program is executed in a nonvolatile RAM, in which the stored data does not lose data even when the power is cut off and the address is accessible in bytes; 상기 전원이 차단된 후 재공급되는 이벤트를 감지하는 단계;Detecting an event of resupply after the power is cut off; 상기 이벤트가 감지되면 상기 비휘발성 램에 저장된 상기 레지스터의 값 및 상기 상태 값을 호출하는 단계; 및Invoking a value of the register and a state value stored in the nonvolatile RAM when the event is detected; And 상기 호출된 상기 레지스터의 값 및 상기 상태 값에 기초하여 상기 전원이 차단되기 전의 상태를 복원하는 단계Restoring a state before the power is cut based on the value of the called register and the state value; 를 포함하는 컴퓨팅 방법.Computing method comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 전원의 공급 전압이 임계치보다 작은 전원 차단 이벤트를 감지하는 단계Detecting a power off event in which the supply voltage of the power supply is less than a threshold; 를 더 포함하고,More, 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 단계는Storing the value of the register and the value of the peripheral device in the nonvolatile RAM 상기 전원 차단 이벤트가 감지되면 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 컴퓨팅 방법.And storing the value of the register and the value of the peripheral device in the nonvolatile RAM when the power down event is detected. 제8항에 있어서,The method of claim 8, 상기 전원 차단 이벤트가 감지되면 기준 시간 동안 상기 전원의 전압을 유지하는 단계Maintaining a voltage of the power source for a reference time when the power-off event is detected; 를 더 포함하고,More, 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 단계는Storing the value of the register and the value of the peripheral device in the nonvolatile RAM 상기 기준 시간 동안 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 컴퓨팅 방법.And storing the value of the register and the value of the peripheral device in the nonvolatile RAM during the reference time. 제7항에 있어서,The method of claim 7, wherein 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 단계는Storing the value of the register and the value of the peripheral device in the nonvolatile RAM 프로세서의 보존 명령에 응답하여 상기 레지스터의 값 및 상기 주변 장치의 값을 상기 비휘발성 램에 저장하는 컴퓨팅 방법.And storing a value of the register and a value of the peripheral device in the nonvolatile RAM in response to a preservation command of a processor. 제10항에 있어서,The method of claim 10, 상기 보존 명령에 응답하여 휘발성 메모리 - 상기 휘발성 메모리는 상기 전원이 차단되면 저장된 데이터를 잃음 - 에 저장된 데이터를 상기 비휘발성 램에 저장하는 단계Storing data stored in the volatile memory in the nonvolatile RAM in response to the preservation command, wherein the volatile memory loses stored data when the power is cut off. 를 더 포함하는 컴퓨팅 방법.Computing method further comprising. 제7항 내지 제11항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 7 to 11 is recorded.
KR1020080097581A 2008-10-06 2008-10-06 Method and system for permanent computing using non-volatile random access memory KR100994609B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080097581A KR100994609B1 (en) 2008-10-06 2008-10-06 Method and system for permanent computing using non-volatile random access memory
PCT/KR2009/005684 WO2010041852A2 (en) 2008-10-06 2009-10-06 Method and system for perpetual computing using non-volatile random access memory (nvram)
US13/122,722 US20110197018A1 (en) 2008-10-06 2009-10-06 Method and system for perpetual computing using non-volatile random access memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080097581A KR100994609B1 (en) 2008-10-06 2008-10-06 Method and system for permanent computing using non-volatile random access memory

Publications (2)

Publication Number Publication Date
KR20100038564A true KR20100038564A (en) 2010-04-15
KR100994609B1 KR100994609B1 (en) 2010-11-15

Family

ID=42215254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080097581A KR100994609B1 (en) 2008-10-06 2008-10-06 Method and system for permanent computing using non-volatile random access memory

Country Status (1)

Country Link
KR (1) KR100994609B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101218865B1 (en) * 2010-05-06 2013-01-07 주식회사 프롬나이 Computing system and method
KR101716866B1 (en) * 2016-04-29 2017-03-15 울산과학기술원 A permanant booting apparatus capable of initializing peripheral devices syntagmatically and method thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889933A (en) * 1997-01-30 1999-03-30 Aiwa Co., Ltd. Adaptive power failure recovery
JP2001142600A (en) * 1999-11-15 2001-05-25 Canon Inc Multi-language display switching device and its switching method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101218865B1 (en) * 2010-05-06 2013-01-07 주식회사 프롬나이 Computing system and method
KR101716866B1 (en) * 2016-04-29 2017-03-15 울산과학기술원 A permanant booting apparatus capable of initializing peripheral devices syntagmatically and method thereof

Also Published As

Publication number Publication date
KR100994609B1 (en) 2010-11-15

Similar Documents

Publication Publication Date Title
JP4966965B2 (en) Flash memory management method resistant to data corruption due to power loss
US8028177B2 (en) Method for changing power states of a computer
US9075733B1 (en) Selective storage of address mapping metadata in a system having multiple memories
US20110197018A1 (en) Method and system for perpetual computing using non-volatile random access memory
US8874839B2 (en) Electronic system and method and apparatus for saving data thereof
KR20070047336A (en) Volatile storage based power loss recovery mechanism
KR101846612B1 (en) Load boot data
JP2010186340A (en) Memory system
JP2012508932A (en) Manage cache data and metadata
KR101651204B1 (en) Apparatus and Method for synchronization of snapshot image
CN101963891A (en) Method and device for data storage and processing, solid-state drive system and data processing system
KR20140121233A (en) Electronic device having a booting function of operating system by bootloader, method of performing the same function and storage medium
KR20100065999A (en) User device comprising auxiliary power supply
CN105786544A (en) Method for booting computer system rapidly and booting system of computer
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
US10628168B2 (en) Management with respect to a basic input/output system policy
CN104808765B (en) A kind of information processing method and electronic equipment
US20130332662A1 (en) Information processing apparatus and method and program
KR100994609B1 (en) Method and system for permanent computing using non-volatile random access memory
US7360016B2 (en) Method of protecting data in cache memory of storage system
US10204054B2 (en) Media cache cleaning
KR20100027441A (en) Data back up method and solid state drive including energy storages
US20130073792A1 (en) Electronic apparatus using nand flash and memory management method thereof
JP2008059007A (en) Semiconductor storage device
KR102145358B1 (en) Method and computer-readable medium emboding program for protecting data integrity of disk in alternate operating system environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141106

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee