KR101218865B1 - 컴퓨팅 시스템 및 방법 - Google Patents

컴퓨팅 시스템 및 방법 Download PDF

Info

Publication number
KR101218865B1
KR101218865B1 KR1020100042239A KR20100042239A KR101218865B1 KR 101218865 B1 KR101218865 B1 KR 101218865B1 KR 1020100042239 A KR1020100042239 A KR 1020100042239A KR 20100042239 A KR20100042239 A KR 20100042239A KR 101218865 B1 KR101218865 B1 KR 101218865B1
Authority
KR
South Korea
Prior art keywords
data
storage device
application process
volatile ram
ram
Prior art date
Application number
KR1020100042239A
Other languages
English (en)
Other versions
KR20110122907A (ko
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 KR1020100042239A priority Critical patent/KR101218865B1/ko
Publication of KR20110122907A publication Critical patent/KR20110122907A/ko
Application granted granted Critical
Publication of KR101218865B1 publication Critical patent/KR101218865B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

컴퓨팅 시스템이 제공된다. 상기 컴퓨팅 시스템은 메인 메모리를 비휘발성램과 휘발성램으로 구성하고, 저장장치에 사본이 존재하지 않는 데이터를 비휘발성램에 저장함으로써 시스템 오프 시에도 모든 프로세스에 대한 영속성을 제공한다.

Description

컴퓨팅 시스템 및 방법{COMPUTING SYSTEM AND METHOD}
컴퓨팅 시스템 및 컴퓨팅 방법에 연관되며, 보다 특정하게는 복수 개의 프로세스에 대해 프로세스 영속성(process persistence)을 구현하는 컴퓨팅 시스템 및 방법에 연관된다.
비휘발성램(Non-volatile Random Access Memory, 이하에서는 NVRAM이라고 한다)은, 전원의 차단에도 불구하고 데이터를 소실하지 않는 특성을 갖는 램이다.
NVRAM에는 배터리에 의해 비휘발성이 유지되는 Battery backed RAM과, 전원 공급 없이도 소자 특성 상 전원 공급 없이도 저장된 데이터를 유지하는 스토리지 클래스 메모리 등이 있다.
스토리지 클래스 메모리(Storage Class Memory, 이하에서는 SCM이라고 한다)는, 비휘발성램(Non-Volatile Random Access Memory, NVRAM)의 한 형태로서, 메모리 셀(memory cell)이 스스로 비휘발성을 띄고, 빠른 속도로 바이트 단위의 주소 접근이 가능하다.
현재 상용화 되었거나 또는 상용화가 예상되는 SCM에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등이 있다. 특히, FeRAM은 Ramtron 사(社)에서 출시하여 상용화 되었으며, 고집적성의 강점이 있는 PCRAM 또한 인텔, 삼성 등의 회사들이 상용화에 근접하였다.
한편, 이 SCM은 시스템 계층 구조상에서 저장장치, 디스크 캐시 등으로 활용되는 방향으로 연구가 진행되어 왔다.
메인 메모리 구성에 있어서 휘발성램과 비휘발성램을 포함하여 모든 프로세스에 대한 영속적인 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.
정상적인 시스템 온/오프 요청을 처리하는 경우에 대해서 모든 프로세스의 영속성을 제공하는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.
비정상적인 전원 차단에 의한 시스템 온/오프 요청에도 모든 프로세스의 영속성을 제공하는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.
본 발명의 일측에 따르면, 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서, 메인 메모리의 적어도 일부로서 동작하는 비휘발성램, 상기 비휘발성램과 함께 상기 메인 메모리의 다른 일부로서 동작하는 휘발성램 및 시스템 오프 시에도 상기 복수 개의 프로세스들이 영속성을 가지도록 상기 비휘발성램 및 상기 휘발성램 중 적어도 하나를 제어하는 메모리 제어부를 포함하는, 컴퓨팅 시스템이 제공된다.
이때, 상기 비휘발성램은 상기 복수 개의 프로세스 중, 시스템 프로세스 및 응용 프로세스 일부의 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하고, 상기 휘발성램은 상기 복수 개의 프로세스 중, 응용 프로세스의 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행할 수 있다.
한편, 상기 메모리 제어부는, 시스템 오프 명령이 발생되면, 상기 휘발성램의 사용 내역 전체를 분석하고, 분석결과 상기 휘발성램에서 동작하는 프로세스 중, 저장장치에 사본이 존재하지 않는 데이터를 상기 비휘발성램 또는 상기 저장장치에 저장할 수 있다.
또한, 상기 메모리 제어부는, 상기 시스템 오프 이후 시스템 온 되면, 상기 시스템 오프 전에 상기 휘발성램에서 동작되던 상기 저장장치에 사본이 존재하는 프로세스의 데이터의 적어도 일부를 상기 저장장치로부터 상기 휘발성램으로 복구(restore)할 수 있다. 또한, 이러한 복구는 필요에 따라 선택적으로 수행될 수 있다. 이하 별다른 언급이 없더라도 동일하다.
복구 요청이 발생하면 요청에 대응하는 상기 저장장치에 사본이 존재하는 프로세스의 데이터를 상기 저장장치로부터 상기 휘발성램으로 복구할 수 있다.
한편, 상기 메모리 제어부는, 상기 시스템 오프 이후 시스템 온 되면, 상기 저장장치에 저장되거나 또는 상기 비휘발성램에 저장된 상기 사본이 존재하지 않는 프로세스의 데이터를 상기 휘발성램에 복구할 수 있다.
상기 메모리 제어부는, 시스템 오프가 발생되면, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부를 상기 비휘발성램에 저장할 수 있다.
한편, 상기 메모리 제어부는, 상기 시스템 오프 이후 시스템 온 명령이 수신되면, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나를 상기 비휘발성램으로부터 상기 시스템 오프 전의 본래 위치로 복구(restore)할 수 있다.
여기서, 상기 비휘발성램은 상기 복수 개의 프로세스 중, 시스템 프로세스 및 응용 프로세스의 데이터의 변동이 발생되는 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하고, 상기 휘발성램은 상기 복수 개의 프로세스 중, 응용 프로세스의 데이터의 변동이 발생되지 않는 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행할 수 있다.
상기 메모리 제어부는, 상기 휘발성램에 존재하는 응용 프로세스의 데이터가 변동되면, 상기 변동된 데이터를 상기 비휘발성램으로 이동시킬 수 있다.
이때, 비정상적인 시스템 오프가 발생되는 경우, 임계 시간 동안 전원을 공급하는 임시 전원 공급부를 더 포함하고, 상기 메모리 제어부는, 비정상적인 시스템 오프가 발생되는 경우, 상기 임계 시간 내에 상기 프로세서의 레지스터, 캐시 데이터, 디바이스 상태 정보 및 휘발성 램(이를테면, DRAM)의 데이터 중 적어도 일부를 상기 비휘발성램에 저장할 수 있다.
상기 메모리 제어부는, 상기 시스템 오프 이후 시스템 온 명령이 수신되면, 상기 비휘발성램에 저장된 상기 프로세서의 레지스터, 상기 캐시 데이터, 상기 디바이스 상태 정보 및 상기 휘발성 램의 데이터 중 적어도 일부를 상기 비휘발성램으로부터 상기 시스템 오프 이전의 본래 위치로 복구(restore)할 수 있다.
그러면 상기 메모리 제어부는, 상기 시스템 오프 이후 시스템 온 되면, 상기 휘발성램의 소실된 데이터를 상기 저장장치로부터 복구(restore)할 수 있다.
본 발명의 일측에 따르면, 비휘발성램을 메인 메모리로 활용하여, 복수 개의 프로세스 중, 시스템 프로세스의 컴퓨팅 연산을 수행하는 단계 및 휘발성램을 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중, 응용 프로세스의 컴퓨팅 연산을 수행하는 단계를 포함하는, 컴퓨팅 방법이 제공된다.
컴퓨팅 시스템에 대한 시스템 오프가 발생되면, 상기 휘발성램의 사용 내역 전체를 분석하는 단계 및 분석결과 상기 휘발성램에 존재하는 응용 프로세스의 데이터 중, 저장장치에 사본이 존재하지 않는 프로세스의 데이터를 상기 비휘발성램 또는 상기 저장장치에 저장하는 단계를 더 포함할 수 있다.
그리고, 상기 시스템 오프 이후 시스템 온 되면, 시스템 오프 전에 상기 휘발성램에 존재하던 상기 저장장치에 사본이 존재하는 프로세스의 데이터를 상기 저장장치로부터 상기 휘발성램으로 복구(restore)하거나, 또는 상기 저장장치에 사본이 존재하는 프로세스의 데이터에 대한 접근 요청이 발생할 때 상기 저장장치로부터 요청에 대응하는 데이터를 상기 휘발성램으로 복구하는 단계를 더 포함할 수 있다.
한편, 상기 시스템 오프 이후 시스템 온 되면, 상기 저장장치에 저장되거나 또는 상기 비휘발성램에 저장된 상기 사본이 존재하지 않는 프로세스의 데이터를 상기 휘발성램에 복구하는 단계를 더 포함할 수 있다.
본 발명의 다른 일측에 따르면, 비휘발성램을 메인 메모리로 활용하여, 복수 개의 프로세스 중, 시스템 프로세스와 응용 프로세스의 데이터의 변동이 발생하는 컴퓨팅 연산을 수행하는 단계 및 휘발성램을 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중, 응용 프로세스의 데이터의 변동이 발생하지 않는 컴퓨팅 연산을 수행하는 단계를 포함하는, 컴퓨팅 방법이 제공된다.
이때, 상기 휘발성램에 존재하는 응용 프로세스의 데이터가 변동되면, 상기 변동된 데이터를 상기 비휘발성램으로 이동시키는 단계를 더 포함할 수 있다.
본 발명은, 메인 메모리를 비휘발성램과 휘발성램으로 구성하고, 시스템 오프 시에 저장장치에 사본이 존재하지 않는 데이터를 비휘발성램에 저장되도록 함으로써 모든 프로세스에 대한 영속성을 제공하는 컴퓨팅 시스템 및 컴퓨팅 방법에 관한 것으로, 프로세스의 영속성 유지를 위해 시스템이 중지(freezing)될 필요가 없으므로, 시스템 안정성이나 일관성(consistence)을 보장하면서도 실행이 지속될 수 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따라 컴퓨팅 시스템의 오프 시에 프로세스의 데이터가 저장되는 위치를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 메인 메모리 할당 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 시스템 오프와 시스템 온 과정을 도시한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 메인 메모리 할당 과정을 도시한 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른 시스템 오프와 시스템 온 과정을 도시한 흐름도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)을 도시한 도면이다.
본 발명의 설명에 앞서 이하의 설명에서 영속적 프로세스(persistent process) 또는 프로세스의 영속성이라 함은, 프로세스에 대한 컴퓨팅 연산의 실행 중 발생되는 모든 데이터와 상태가 컴퓨팅 시스템의 전원 오프(power off) 시에도 보존되고, 다시 컴퓨팅 시스템이 파워 온(power on)되는 경우 연속해서 컴퓨팅 연산의 실행이 지속되는 프로세스를 의미한다.
컴퓨팅 시스템(100)은 복수 개의 프로세스를 처리하는 프로세서(110), 메인 메모리(120), 메모리 제어부(Memory controller)(130) 및 저장장치(Storage)(140)를 포함한다.
메인 메모리(120)는 프로세서(110)가 처리하는 복수 개의 프로세스에 대한 컴퓨팅 연산을 위해, 저장장치(140)로부터 필요한 파일을 독출하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등의 원인에 의해 저장장치(140)로 데이터가 옮겨지기 전까지 상기 프로세스에 대한 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장한다.
메인 메모리(120)는 비휘발성램(Non-Volatile Random Access Memory, NVRAM)(121)과 휘발성램(volatile memory)(122)을 포함한다.
이때, 비휘발성램(121)은 스토리지 클래스 메모리(Storage Class Memory, 이하에서는 SCM이라고 한다)일 수 있다. 그리고, SCM(121)에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등의 예가 있다.
종래에 휘발성 메모리만을 컴퓨팅 연산의 메인 메모리로서 사용한 컴퓨팅 시스템에서는, 갑작스러운 전원 차단으로 인한 데이터 손실이 문제되었다.
이러한 데이터 손실에 대한 해결방법으로서, 체크 포인팅(Check pointing)을 기반으로 하는 연구들이 수행되었다. 체크 포인팅은 메인 메모리에 있는 프로세스의 실행 이미지를 저장장치(storage)에 주기적으로 저장하는 기법이다.
그러나, 이러한 체크 포인팅 기법은, 공간 오버헤드와 실행 시간 오버헤드가 커서 효율성이 낮다. 뿐만 아니라, 이러한 체크 포인팅 기법은 연속적으로 데이터를 백업하지 않아서, 데이터 백업 시점들 사이에 인터벌(interval)이 존재하며, 따라서 데이터 백업 시점들 사이에 변경된 데이터는 손실될 수 있다.
또한 체크 포인팅 기법에 의한 데이터 백업 작업 중에 데이터 일관성(consistency)을 유지하기 위해, 프로세스가 처리될 수 없으므로, 프리징(freezing)이 발생된다.
따라서, 갑작스러운 전원 차단 등의 이벤트에도 데이터 손실이 없도록 하기 위해서는 메인 메모리를 비휘발성 메모리(Non-volatile memory), 이를테면 비휘발성램(Non-volatile RAM; NVRAM)로 채택하는 시도가 요구된다.
그러나, 메인 메모리 전체를 비휘발성 메모리로만 구성하는 것보다, 비휘발성 메모리와 휘발성 메모리를 함께 사용하여 구성하면 두 가지 메모리 특성의 장점을 모두 활용하면서도 단점이 보완될 수 있으며, 메모리 공간 분리를 통해 신뢰성(reliability) 및 가용성(availability) 측면에서의 향상을 도모할 수 있다
비휘발성램(121)과 휘발성램(122)을 메인 메모리(120)로 해서 모든 프로세스의 영속성을 구현함에 있어서, 시스템 오프가 발생하면 사본이 없는 데이터를 비휘발성램(121)에 저장하는 실시예와, 시스템 오프가 발생하기 이전부터 저장장치(140)에 사본이 없는 데이터를 비휘발성램(121)에 저장하는 실시예로 설명하고자 한다.
먼저, 시스템 오프가 발생하면 사본이 없는 데이터를 비휘발성램(121)에 저장하는 본 발명의 일 실시예를 살펴보고자 한다.
본 발명의 일 실시예에 따라 비휘발성램(121)은 복수 개의 프로세스 중, 시스템 프로세스 및 응용 프로세스 일부의 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행한다. 그리고, 휘발성램(122)은 복수 개의 프로세스 중, 응용 프로세스의 다른 일부의 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행한다.
그리고, 메모리 제어부(130)는 시스템 오프가 발생되면, 휘발성램(122)의 사용 내역 전체를 분석하고, 분석결과 상기 휘발성램(122)에 존재하는 응용 프로세스의 데이터 중, 저장장치에 사본이 존재하지 않는 프로세스의 데이터를 비휘발성램(121) 또는 저장장치(140)에 저장한다. 그리고, 메모리 제어부(130)는 시스템 오프가 발생되면, 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부를 비휘발성램(122)에 저장한다. 이때, 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보는 비휘발성램(122)의 기설정 영역에 저장될 수 있다.
저장장치에 사본이 존재하지 않는 프로세스의 데이터가 저장장치(140)에 저장되는 경우 시스템 온 할 때 휘발성램(122)의 복구시간이 길어질 수 있다. 저장장치에 사본이 존재하지 않는 프로세스의 데이터에 대한 설명은 이후 도 2를 통해 후술한다.
그리고, 메모리 제어부(130)는 시스템 오프 이후 시스템 온 되면, 비휘발성램(121)에 저장된 저장장치에 사본이 존재하지 않는 데이터를 휘발성램(121)에 복구(restore)할 수 있다. 그리고, 메모리 제어부(130)는 시스템 오프 이후 시스템 온 되면, 시스템 오프 전에 휘발성램(122)에서 동작되던 저장장치에 사본이 존재하는 프로세스의 데이터 전부를 저장장치(144)로부터 휘발성램(122)으로 복구할 수도 있고, 필요에 따라
사본이 존재하는 프로세스의 데이터에 대한 접근 요청이 발생할 때 저장장치(140)로부터 요청에 대응하는 데이터를 휘발성램(122)으로 복구할 수도 있다.
그리고, 메모리 제어부(130)는 시스템 온 되면, 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 하나를 비휘발성램(121)으로부터 시스템 오프 전의 본래 위치로 복구한다.
다음으로, 시스템 오프가 발생하기 이전부터 저장장치(140)에 사본이 없는 데이터를 비휘발성램(121)에 저장하는 본 발명의 다른 실시예를 살펴보고자 한다.
본 발명의 다른 실시예에 따라 비휘발성램(121)은 복수 개의 프로세스 중, 시스템 프로세스 및 응용 프로세스의 데이터의 변동이 발생되는 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행한다. 그리고, 휘발성램(122)은 복수 개의 프로세스 중, 응용 프로세스의 데이터의 변동이 발생되지 않는 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행한다.
메모리 제어부(130)는 휘발성램(122)에 존재하는 응용 프로세스의 데이터가 변동되면, 응용 프로세스의 변동된 데이터를 비휘발성램(121)으로 이동시킨다.
컴퓨팅 시스템(100)은 전원 감소를 감시해서 비정상적인 시스템 오프의 발생을 감지하고, 비정상적인 시스템 오프가 발생되면 경우, 임계 시간 동안 전원을 공급하는 임시 전원 공급부(미도시)를 더 포함할 수 있다.
메모리 제어부(130)는 비정상적인 시스템 오프가 발생되는 경우, 임시 전원 공급부(미도시)에서 전원을 공급받는 임계 시간 내에, 프로세서의 레지스터, 캐시 데이터 디바이스 상태 정보 및 휘발성램(122)의 데이터 중 적어도 일부를 비휘발성램(122)에 저장한다.
그리고, 메모리 제어부(130)는 시스템 온 되면, 휘발성램(122)의 소실된 데이터 전부를 저장장치(140)로부터 휘발성램(122)으로 복구 할 수도 있고, 필요에 따라 발생하는 요청에 대응하는 데이터를 저장장치(144)로부터 휘발성램(122)으로 복구할 수도 있다. 휘발성램(122)에 존재하던 응용 프로세스의 데이터는 그 내용이 변동되지 않았으므로 저장장치(140)에 사본이 존재한다.
그리고, 메모리 제어부(130)는 시스템 온 되면, 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 하나를 비휘발성램(121)으로부터 시스템 오프 전의 본래 위치로 복구한다.
그러면, 모든 프로세스의 영속성을 위해 시스템 오프시에 비휘발성램(121)과 휘발성램(122) 각각에 저장되는 프로세스의 데이터 종류를 아래에서 도 2를 통해 설명하고자 한다.
도 2는 본 발명의 일 실시예에 따라 컴퓨팅 시스템의 오프 시에 프로세스의 데이터가 저장되는 위치를 도시한 도면이다.
시스템 프로세스(220)은 빠른 시스템 온/오프를 위하여 비휘발성램(121)에 저장된다. 응용 프로세스(210)의 데이터는 시스템 오프가 발생한 최종 시점에 저장장치(140)에 사본이 존재하는지의 여부에 따라 저장되는 위치가 달라진다.
응용 프로세스(210)의 데이터 중 저장장치(140)에 사본이 존재하는 데이터는 휘발성램(122)에 저장되고, 응용 프로세스(210)의 데이터 중 저장장치(140)에 사본이 존재하지 않는 데이터는 비휘발성램(121)에 저장된다. 즉, 예를 들어 저장장치(140)에 사본이 존재하는 데이터에는 파일 데이터(211) 중 변경이 발생하지 않은 데이터인 클린 데이터가 이에 속한다. 그리고, 저장장치(140)에 사본이 존재하지 않는 데이터는 파일 데이터(211) 중 변경된 데이터인 더티 데이터(212), 주소 공간(214)에서의 힙(215), 전역변수(216), 스택(217) 등이 그 예이다.
한편, 시스템 오프시 휘발성램(122)에 저장되도록 설명한 데이터들이 비휘발성램(121)에 저장되도록 하는 것도 가능하다. 그러나, 비휘발성램(121)에 저장되어야 하는 데이터가 휘발성램(122)에 저장되면 해당 프로세스의 영속성을 제공할 수 없게 된다.
또한 적은 량의 비휘발성램(121)을 사용하기 위해서, 비휘발성램(121)의 데이터가 저장장치(140)에 플러시(flush) 되는 것도 가능하나, 그러한 경우에는 정상적인 재 구동을 위하여 소요되는 시간이 길어질 수 있음을 감안해야 한다.
저장장치(140)에 사본이 있는 프로세스의 데이터는 시스템 오프가 발생했을 때 휘발성램(122)에 방치되어 전원 차단과 함께 메모리 상에서는 소실된다. 하지만 다시 시스템 온 되었을 때 저장장치(140)로부터 복구될 수 있다.
반대로 동적으로 내용이 변하여 저장장치(140)에 사본이 없는 프로세스의 데이터는 시스템 오프가 발생했을 때 비휘발성램(121)에 저장되면 전원이 차단되더라도 데이터가 소실 되지 않도록 보존이 가능하다.
시스템 프로세스(230)는 빠른 온/오프를 위하여 비휘발성램(121) 상에서 수행되는 것이 바람직하다. 그러나, 시스템 프로세스(230)은 휘발성램(122) 상에서 수행되다가 시스템 오프 명령을 받을 때 비휘발성램(121)으로 복사되는 것도 가능하다.
이하, 상기와 같이 구성된 본 발명에 따라 비휘발성램을 메인 메모리의 일부로 활용해서 모든 프로세스의 영속성을 구현하는 컴퓨팅 방법을 아래에서 도 3 내지 도 6을 참조하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 메인 메모리 할당 과정을 도시한 흐름도이다.
도 3을 참조하면, 컴퓨팅 시스템(100)은 프로세스의 메모리 할당을 요청 받으면(S310), 메모리 할당을 요청한 프로세스의 종류를 확인한다(S320).
시스템 프로세스에서 메모리 할당을 요청한 경우, 컴퓨팅 시스템(100)은 시스템 프로세스에서 요청한 메모리를 모두 비휘발성램(121)에서 할당하도록 한다(S330).
만약, 응용 프로세스에서 메모리 할당을 요청한 경우, 컴퓨팅 시스템(100)은 응용 프로세스에서 요청한 메모리를 모두 휘발성램(122)에서 할당하도록 한다(S340).
한편, 응용 프로세스에서 메모리 할당을 요청할 때, 컴퓨팅 시스템(100)은 응용 프로세스에서 요청한 메모리를 일부 또는 모두를 비휘발성램(121)에서 할당하도록 할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 시스템 오프와 시스템 온 과정을 도시한 흐름도이다.
도 4를 참조하면, 컴퓨팅 시스템(100)은 도 3과 같은 방법으로 메모리가 할당된 상황에서 시스템 오프가 발생되면(S410), 컴퓨팅 시스템(100)은 현재 휘발성램(122)의 사용 내역 전체를 분석한다(S420). 예를 들면 페이징 되고 있는 시스템의 경우 각 프로세스 마다 페이지 테이블을 스캔하거나 페이지 캐시를 검색한다. 이 과정에서 컴퓨팅 시스템(100)은 저장장치(140)에 사본이 존재하는 프로세스의 데이터인지 여부를 판단한다(S430).
컴퓨팅 시스템(100)은 저장장치(140)에 사본이 존재하지 않는 프로세스의 데이터를 비휘발성램(121)에 복사(S440)함으로써 전원이 꺼지더라도 데이터를 보존한다. 이때 프로세서 레지스터 및 캐시 데이터, 디바이스 상태 정보 등 소량의 휘발성 데이터도 비휘발성램(121)의 기설정 영역에 저장한다.
단계(S440)에서 저장장치(140)가 아닌 비휘발성램(121)에 데이터를 복사하는 것은 시스템 온/오프의 속도를 빠르게 하기 위해서이다. 따라서, 비휘발성램(121)의 크기가 작거나 시스템 온/오프의 속도가 느린 것을 감안되는 경우, 저장장치(140)에 사본이 존재하지 않는 프로세스의 데이터를 저장장치(140)에 복사하거나, 비휘발성램(121)에 있는 데이터를 저장장치(140)로 내려쓰는 것도 가능하다.
컴퓨팅 시스템(100)은 저장장치(140)에 사본이 존재하는 프로세스의 데이터를 그대로 휘발성램(122)에 두어 전원이 꺼질 때 소실되도록 방치한다.
이러한 과정(S430~S440)이 휘발성램(122)에 할당된 모든 데이터에 대해 이뤄지면 컴퓨팅 시스템(100)은 전원을 차단하여 시스템을 오프 시킨다(S450).
이후 전원을 공급하여 시스템이 온 되면(S460), 컴퓨팅 시스템(100)은 휘발성 데이터를 복구 시킨다(S470). 이때, 휘발성 데이터에는 휘발성램(122)의 소실된 데이터, 프로세서 레지스터 및 캐시 데이터 및 디바이스 상태 정보 등이 될 수 있다.
휘발성램(122)의 소실된 데이터에는 저장장치(140)에 사본이 존재하지 않는 프로세스의 데이터와 저장장치(140)에 사본이 존재하는 프로세스의 데이터가 있다.
단계(S470)에서 컴퓨팅 시스템(100)은 비휘발성램(121)에 저장된 저장장치(140)에 사본이 존재하지 않는 프로세스의 데이터를 휘발성램(122)에 복구할 수 있다.
또한, 단계(S470)에서 컴퓨팅 시스템(100)은 저장장치(140)에 사본이 존재하는 프로세스의 데이터의 복구를 빠른 프로세스 재개를 위해 휘발성램(122)의 소실된 데이터를 복구 과정에서 바로 저장장치(140)에서 읽어 휘발성램(122)에 복구시키거나, 요구 페이징 기법 등으로 요청이 발생할 때 읽어 들임으로써 복구 할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 메인 메모리 할당 과정을 도시한 흐름도이다.
도 5를 참조하면, 컴퓨팅 시스템(100)은 프로세스의 메모리 할당을 요청 받으면(S510), 메모리 할당을 요청한 프로세스의 종류를 확인한다(S520).
시스템 프로세스에서 메모리 할당을 요청한 경우, 컴퓨팅 시스템(100)은 시스템 프로세스에서 요청한 메모리를 모두 비휘발성램(121)에서 할당하도록 한다(S530).
만약, 응용 프로세스에서 메모리 할당을 요청한 경우, 컴퓨팅 시스템(100)은 응용 프로세스의 요청에 데이터를 변동시키는지 여부를 확인한다. 즉, 응용 프로세스의 요청이 파일에 대한 읽기 요청인지 여부를 확인한다(S540).
단계(S540)의 확인결과, 읽기 요청이 아닌 경우, 컴퓨팅 시스템(100)은 데이터의 변동이 발생되는 응용 프로세스에서 요청한 메모리를 모두 비휘발성램(121)에서 할당하도록 한다(S530).
하지만, 단계(S540)의 확인결과, 읽기 요청인 경우, 컴퓨팅 시스템(100)은 데이터의 변동이 발생되지 않는 응용 프로세스에서 요청한 메모리를 모두 휘발성램(122)에서 할당하도록 한다(S550).
이후, 컴퓨팅 시스템(100)은 휘발성램(122)에 존재하는 응용 프로세스의 데이터가 변동되면(S560), 응용 프로세스의 변동된 데이터를 비휘발성램(121)으로 이동시킨다(S530).
도 6은 본 발명의 다른 실시예에 따른 시스템 오프와 시스템 온 과정을 도시한 흐름도이다.
도 6을 참조하면, 컴퓨팅 시스템(100)은 도 5와 같은 방법으로 메모리가 할당된 상황에서 시스템 오프가 발생하면(S610), 도 5의 과정의 결과 메인 메모리 상에 있는 데이터 중 저장장치(140)에서부터 복구가 불가능한 데이터는 이미 비휘발성램(121)에 존재하고 있으므로, 프로세서 레지스터 및 캐시 데이터, 디바이스 상태 정보 등 소량의 휘발성 데이터만 비휘발성램(121)의 특정 영역에 저장(S620)한다. 이로서 프로세스를 재 구동 하기 위해 필요한 모든 데이터가 시스템 내에 보존된다.
컴퓨팅 시스템(100)은 전원 공급이 차단되어 시스템 오프 된다(S630).
이후 전원이 공급되어 시스템이 온 되면(S640), 컴퓨팅 시스템(100)은 휘발성 데이터를 복구 시킨다(S650). 이때, 휘발성 데이터에는 휘발성램(122)의 소실된 데이터, 프로세서 레지스터 및 캐시 데이터 및 디바이스 상태 정보 등이 될 수 있다.
단계(S650)에서 컴퓨팅 시스템(100)은 비휘발성램(121)에 저장해놓은 프로세서 레지스터 및 캐시 데이터, 디바이스 상태 정보 등을 본래 위치로 복구한다. 단계(S650)를 마치면 모든 프로세스가 이전 상태에 이어 실행을 재개할 수 있으며 영속적인 실행이 가능하다. 한편 휘발성램(122)에 할당되어 시스템 오프 과정에서 소실된 데이터는 프로세스의 실행 중 페이지 폴트 등의 방법을 통해 휘발성램(122)로 다시 읽어 들여질 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 컴퓨팅 시스템
110; 프로세서
120; 메인 메모리
121; 비휘발성램
122; 휘발성램
130; 메모리 제어부
140; 저장 장치

Claims (19)

  1. 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서;
    상기 복수 개의 프로세스 중, 시스템 프로세스에 연관된 데이터, 및 응용 프로세스에 연관된 데이터 중 저장장치에 저장된 사본과 동일하지 않게 변동된 데이터에 대응하여 메인 메모리의 적어도 일부로서 동작하는 비휘발성램;
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일한 데이터에 대응하여 상기 메인 메모리의 다른 일부로서 동작하는 휘발성램; 및
    시스템 오프 시에도 상기 복수 개의 프로세스들이 영속성을 가지도록 상기 비휘발성램 및 상기 휘발성램 중 적어도 하나를 제어하는 메모리 제어부를 포함하는, 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일하지 않게 변동된 데이터는, 상기 응용 프로세스에 연관된 파일 데이터 중 상기 응용 프로세스 실행에 의해 데이터 변경이 발생한 더티 데이터(Dirty data), 주소 공간에서의 힙, 전역변수, 스택 중 적어도 하나이고,
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일한 데이터는, 상기 응용 프로세스에 연관된 파일 데이터 중 상기 응용 프로세스 실행에도 불구하고 데이터 변경이 발생하지 않은 클린 데이터인, 컴퓨팅 시스템.
  3. 제2항에 있어서,
    상기 메모리 제어부는,
    상기 컴퓨팅 시스템에서 시스템 오프가 발생되면, 상기 휘발성램의 사용 내역 전체를 분석하고,
    상기 분석결과에 따라, 상기 휘발성램에 저장된 데이터 중, 상기 저장장치에 동일한 사본이 존재하지 않는 데이터를 상기 비휘발성램 또는 상기 저장장치에 저장하는, 컴퓨팅 시스템.
  4. 제3항에 있어서,
    상기 메모리 제어부는,
    상기 시스템 오프 이후 시스템 온 되면, 상기 시스템 오프 전에 상기 휘발성램에 존재하던 데이터 전부를 상기 비휘발성램 또는 상기 저장장치로부터 상기 휘발성램으로 복구(restore)하거나, 또는 상기 저장장치에 동일한 사본이 존재하는 데이터에 대한 접근 요청이 발생할 때 상기 저장장치로부터 상기 요청에 대응하는 데이터를 상기 휘발성램으로 복구하는, 컴퓨팅 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 메모리 제어부는,
    상기 컴퓨팅 시스템에서 시스템 오프가 발생되면, 상기 프로세서의 레지스터, 상기 프로세서의 캐시 데이터 및 상기 컴퓨팅 시스템의 디바이스 상태 정보를 상기 비휘발성램의 기설정 영역에 저장하는, 컴퓨팅 시스템.
  7. 제6항에 있어서,
    상기 메모리 제어부는,
    상기 시스템 오프 이후 시스템 온 되면, 상기 비휘발성램의 기설정 영역으로부터 상기 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보를 상기 시스템 오프 전의 본래 위치로 복구(restore)하는, 컴퓨팅 시스템.
  8. 삭제
  9. 제1항에 있어서,
    상기 메모리 제어부는,
    상기 응용 프로세스의 실행에 따라 상기 휘발성램에 저장된 상기 응용 프로세스에 연관된 데이터가 변동되면, 상기 변동된 데이터를 상기 비휘발성램으로 이동하는 메인 메모리 재할당을 수행하는, 컴퓨팅 시스템.
  10. 제1항에 있어서,
    비정상적인 시스템 오프가 발생하는 경우, 임계 시간 동안 상기 컴퓨팅 시스템에 전원을 공급하는 임시 전원 공급부를 더 포함하고,
    상기 메모리 제어부는,
    비정상적인 시스템 오프가 발생하는 경우, 상기 임계 시간 내에 상기 프로세서의 레지스터, 캐시 데이터, 디바이스 상태 정보 및 상기 휘발성램의 데이터 중 적어도 일부를 상기 비휘발성램에 저장하는, 컴퓨팅 시스템.
  11. 삭제
  12. 삭제
  13. 컴퓨팅 시스템이 프로세서를 이용하여 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 컴퓨팅 방법에 있어서,
    상기 복수 개의 프로세스 중, 시스템 프로세스에 연관된 데이터, 및 응용 프로세스에 연관된 데이터 중 저장장치에 저장된 사본과 동일하지 않게 변동된 데이터에 대응하여, 상기 컴퓨팅 시스템에 포함되어 메인 메모리의 적어도 일부로서 동작하는 비휘발성램을 메인 메모리로 할당하는 단계; 및
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일한 데이터에 대응하여, 상기 컴퓨팅 시스템에 포함되어 메인 메모리의 다른 일부로서 동작하는 휘발성램을 메인 메모리로 할당하는 단계
    를 포함하는, 컴퓨팅 방법.
  14. 제13항에 있어서,
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일하지 않게 변동된 데이터는, 상기 응용 프로세스에 연관된 파일 데이터 중 상기 응용 프로세스 실행에 의해 데이터 변경이 발생한 더티 데이터(Dirty data), 주소 공간에서의 힙, 전역변수, 스택 중 적어도 하나이고,
    상기 응용 프로세스에 연관된 데이터 중 상기 저장장치에 저장된 사본과 동일한 데이터는, 상기 응용 프로세스에 연관된 파일 데이터 중 상기 응용 프로세스 실행에도 불구하고 데이터 변경이 발생하지 않은 클린 데이터인, 컴퓨팅 방법.
  15. 제14항에 있어서,
    상기 컴퓨팅 시스템에서 시스템 오프가 발생되면, 상기 휘발성램의 사용 내역 전체를 분석하는 단계;
    상기 분석결과에 따라, 상기 휘발성램에 저장된 데이터 중, 상기 저장장치에 동일한 사본이 존재하지 않는 데이터를 상기 비휘발성램 또는 상기 저장장치에 저장하는 단계
    를 더 포함하는, 컴퓨팅 방법.
  16. 제15항에 있어서,
    상기 시스템 오프 이후 시스템 온 되면, 상기 시스템 오프 전에 상기 휘발성램에 존재하던 데이터 전부를 상기 비휘발성램 또는 상기 저장장치로부터 상기 휘발성램으로 복구(restore)하거나, 또는 상기 저장장치에 동일한 사본이 존재하는 데이터에 대한 접근 요청이 발생할 때 상기 저장장치로부터 상기 요청에 대응하는 데이터를 상기 휘발성램으로 복구하는 단계
    를 더 포함하는, 컴퓨팅 방법.
  17. 삭제
  18. 제13항에 있어서,
    상기 응용 프로세스의 실행에 따라 상기 휘발성램에 저장된 상기 응용 프로세스에 연관된 데이터가 변동되면, 상기 변동된 데이터를 상기 비휘발성램으로 이동하는 메인 메모리 재할당을 수행하는 단계
    를 더 포함하는, 컴퓨팅 방법.
  19. 제13항 내지 제16항 또는 제18항 중 어느 한 항의 컴퓨팅 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020100042239A 2010-05-06 2010-05-06 컴퓨팅 시스템 및 방법 KR101218865B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100042239A KR101218865B1 (ko) 2010-05-06 2010-05-06 컴퓨팅 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100042239A KR101218865B1 (ko) 2010-05-06 2010-05-06 컴퓨팅 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110122907A KR20110122907A (ko) 2011-11-14
KR101218865B1 true KR101218865B1 (ko) 2013-01-07

Family

ID=45393213

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100042239A KR101218865B1 (ko) 2010-05-06 2010-05-06 컴퓨팅 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101218865B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320135A (ja) * 1997-01-30 1998-12-04 Aiwa Co Ltd 適応型電力障害リカバリシステム
KR20000013018A (ko) * 1998-08-04 2000-03-06 윤종용 메모리의 데이터 관리장치
KR20000015068A (ko) * 1998-08-27 2000-03-15 윤종용 시스템 유지 보수 정합 회로
KR20100038564A (ko) * 2008-10-06 2010-04-15 홍익대학교 산학협력단 비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320135A (ja) * 1997-01-30 1998-12-04 Aiwa Co Ltd 適応型電力障害リカバリシステム
KR20000013018A (ko) * 1998-08-04 2000-03-06 윤종용 메모리의 데이터 관리장치
KR20000015068A (ko) * 1998-08-27 2000-03-15 윤종용 시스템 유지 보수 정합 회로
KR20100038564A (ko) * 2008-10-06 2010-04-15 홍익대학교 산학협력단 비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템

Also Published As

Publication number Publication date
KR20110122907A (ko) 2011-11-14

Similar Documents

Publication Publication Date Title
US9047178B2 (en) Auto-commit memory synchronization
US8527693B2 (en) Apparatus, system, and method for auto-commit memory
CN102662791B (zh) 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US7596657B2 (en) Increased storage capacity for solid state disks using data compression
US9830257B1 (en) Fast saving of data during power interruption in data storage systems
US7971014B2 (en) Information processing apparatus and data recovering method
CN104969168A (zh) 具有用于分级写入的nvram的持久性存储装置
CN100474271C (zh) 一种多级缓冲的存储系统和方法
CN103049070A (zh) 缓存数据的掉电保护方法及计算机设备
US20110197018A1 (en) Method and system for perpetual computing using non-volatile random access memory
JP7060789B2 (ja) 電子システム、情報処理装置および制御方法
KR20060043873A (ko) 드라이브 복구 시스템 및 방법
JP2011170589A (ja) ストレージ制御装置、ストレージ装置およびストレージ制御方法
US20100115310A1 (en) Disk array apparatus
US20180276092A1 (en) Recovering using write data stored by a powerloss data protection technique
CN104094240A (zh) 防止混合存储器模块被映射
CN108874574B (zh) 一种垃圾回收处理方法及相关装置
JP2009187450A (ja) ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム
CN103559119B (zh) 文件操作请求处理方法及装置
CN103049407B (zh) 数据存储方法、装置及系统
CN111880636B (zh) 一种存储阵列的断电保护方法及相关装置
JP4349274B2 (ja) 磁気ディスク装置および制御方法
KR101218865B1 (ko) 컴퓨팅 시스템 및 방법
CN113711189A (zh) 用于管理固态驱动器上的降低电力故障能量需求的系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161223

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171214

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 8