WO2011081232A1 - Computing system and method for selectively implementing process persistence using nvram and volatile ram - Google Patents

Computing system and method for selectively implementing process persistence using nvram and volatile ram Download PDF

Info

Publication number
WO2011081232A1
WO2011081232A1 PCT/KR2009/007920 KR2009007920W WO2011081232A1 WO 2011081232 A1 WO2011081232 A1 WO 2011081232A1 KR 2009007920 W KR2009007920 W KR 2009007920W WO 2011081232 A1 WO2011081232 A1 WO 2011081232A1
Authority
WO
WIPO (PCT)
Prior art keywords
processes
scm
computing
computing system
memory
Prior art date
Application number
PCT/KR2009/007920
Other languages
French (fr)
Korean (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 PCT/KR2009/007920 priority Critical patent/WO2011081232A1/en
Publication of WO2011081232A1 publication Critical patent/WO2011081232A1/en

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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Abstract

Disclosed is a computing system. The computing system may include a processor performing a computing operation for a plurality of processes, a storage class memory (SCM) operating as at least part of a main memory, and a volatile memory operating as another part of the main memory together with the SCM.

Description

NVRAM과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법Computing system and method for selectively implementing process persistence using NVRAM and volatile RAM
컴퓨팅 시스템 및 컴퓨팅 방법에 연관되며, 보다 특정하게는 복수 개의 프로세스에 대해 선택적으로 프로세스 영속성(process persistence)을 구현하는 컴퓨팅 시스템 및 방법에 연관된다.It relates to a computing system and a computing method, and more particularly to a computing system and a method that selectively implements process persistence for a plurality of processes.
비휘발성 램(Non-volatile Random Access Memory, 이하에서는 NVRAM이라고 한다)은, 전원의 차단에도 불구하고 데이터를 소실하지 않는 특성을 갖는 램이다.Non-volatile random access memory (hereinafter referred to as NVRAM) is a RAM that does not lose data even when the power supply is cut off.
NVRAM에는 배터리에 의해 비휘발성이 유지되는 Battery backed RAM과, 전원 공급 없이도 소자 특성 상 전원 공급 없이도 저장된 데이터를 유지하는 스토리지 클래스 메모리 등이 있다.NVRAM includes a battery backed RAM that is maintained in a non-volatile state by a battery, and a storage class memory that maintains stored data without a power supply due to device characteristics without a power supply.
스토리지 클래스 메모리(Storage Class Memory, 이하에서는 SCM이라고 한다)는, 비휘발성 램 (Non-Volatile Random Access Memory, NVRAM)의 한 형태로서, 메모리 셀(memory cell)이 스스로 비휘발성을 띄고, 빠른 속도로 바이트 단위의 주소 접근이 가능하다.Storage Class Memory (hereinafter referred to as SCM) is a form of Non-Volatile Random Access Memory (NVRAM), in which memory cells are self-volatile and rapidly Byte address access is possible.
현재 상용화 되었거나 또는 상용화가 예상되는 SCM에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등이 있다. 특히, FeRAM은 Ramtron 사(社)에서 출시하여 상용화 되었으며, 고집적성의 강점이 있는 PCRAM 또한 인텔, 삼성 등의 회사들이 상용화에 근접하였다.SCMs currently commercialized or expected to be commercialized include PCRAM (Phase change RAM), MRAM (Magnetroresistive RAM), FeRAM (Ferroelectric RAM), and the like. In particular, FeRAM was released and commercialized by Ramtron, and PCRAM, which has high integration strengths, was nearing commercialization by companies such as Intel and Samsung.
한편, 이 SCM은 시스템 계층 구조상에서 저장장치, 디스크 캐시 등으로 활용되는 방향으로 연구가 진행되어 왔다.On the other hand, this SCM has been researched to be utilized as a storage device, a disk cache, etc. in the system hierarchy.
개별 프로세스들의 소스 코드를 변경하지 않고도, 선택되는 일부의 개별 프로세스들의 영속성(persistence)을 구현하는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.A computing system and computing method are provided that implement the persistence of some individual processes being selected without changing the source code of the individual processes.
또한, 프로세스의 실행 중에 예기치 못한 전원 공급의 차단이 발생되더라도, 선택된 일부 프로세스들 및 시스템 운영을 위한 일부 정보의 영속성이 유지되는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.In addition, a computing system and computing method are provided in which the persistence of some selected processes and some information for operating the system is maintained even if an unexpected interruption of power supply occurs during execution of the process.
본 발명의 일측에 따르면, 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서, 메인 메모리의 적어도 일부로서 동작하는 NVRAM, 상기 NVRAM과 함께 상기 메인 메모리의 다른 일부로서 동작하는 휘발성 메모리, 및 상기 NVRAM 및 상기 휘발성 메모리 중 적어도 하나를 제어하는 메모리 제어부를 포함하는, 컴퓨팅 시스템이 제공된다.According to one aspect of the invention, a processor that performs computing operations for a plurality of processes, NVRAM operating as at least part of main memory, volatile memory operating as another part of the main memory together with the NVRAM, and the NVRAM and the A computing system is provided that includes a memory controller for controlling at least one of volatile memories.
본 발명의 일 실시예에 따르면, 상기 NVRAM은 SCM(Storage Class Memory)일 수 있다. 이하에서는 SCM의 경우를 예시적으로 설명하지만, 이러한 예시적 설명에 의해 NVRAM의 다른 형태 이를 테면, Battery backed RAM 등의 실시예가 배제되는 것은 아니다.According to an embodiment of the present invention, the NVRAM may be a storage class memory (SCM). Hereinafter, the case of SCM will be described as an example, but embodiments of other forms of NVRAM, such as a battery backed RAM, are not excluded by this exemplary description.
여기서 상기 SCM은 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하고, 상기 휘발성 메모리는 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행할 수 있다.Wherein the SCM serves as a main memory in a computing operation associated with at least some of the processes selected as persistent processes, and the volatile memory is another portion of the plurality of processes not selected as a persistent process. It may serve as a main memory in computing operations associated with the process of.
본 발명의 일 실시예에 따르면, 상기 복수 개의 프로세스 이외에 새로운 제1 프로세스가 실행되는 경우, 상기 복수 개의 프로세스 중 상기 제1 프로세스에 연관된 프로세스가 존재한다면 상기 제1 프로세스는 상기 연관된 프로세스로부터 영속성을 상속받을 수 있다.According to an embodiment of the present invention, when a new first process is executed in addition to the plurality of processes, if there is a process associated with the first process among the plurality of processes, the first process inherits persistence from the associated process. I can receive it.
한편, 상기 컴퓨팅 시스템은, 상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세스 및 상기 SCM에 임계 시간 동안 전원을 공급하는 임시 전원 공급부를 더 포함할 수 있다.The computing system may further include a temporary power supply unit supplying power to the process and the SCM for a threshold time when the power supply of the computing system is cut off.
이 경우, 상기 컴퓨팅 시스템의 전원 공급이 차단되면, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부가 상기 임계시간 내에 상기 SCM에 저장된다.In this case, when the power supply of the computing system is cut off, at least some of the registers, cache data, and device state information of the processor are stored in the SCM within the threshold time.
이 때, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부는, 상기 SCM 내의 기설정된 제1 주소에 저장될 수 있다.In this case, at least some of the registers, cache data, and device state information of the processor may be stored at a first predetermined address in the SCM.
그리고 상기 전원 공급 차단 이후에 상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 SCM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나가 복구(restore)된다.And when the power supply of the computing system is resumed after the power supply is cut off, at least one of a register, the cache data, and the device state information of the processor is restored from a preset first address in the SCM. .
본 발명의 일 실시예에 따르면, 상기 SCM은, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 중 적어도 하나이다.According to an embodiment of the present invention, the SCM is at least one of a phase change RAM (PCRAM), a magnetroresistive RAM (MRAM), and a ferroelectric RAM (FeRAM).
한편, 상기 메모리 제어부는, 상기 복수 개의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되는 슬랩 캐시(Slab. Cache) 및 파일 페이지를 상기 SCM 내에 저장한다.The memory controller stores a slab cache and a file page generated in a computing operation of the plurality of processes in the SCM.
그리고, 상기 메모리 제어부는, 상기 컴퓨팅 시스템의 부팅 과정에서 상기 DRAM에 대한 페이징 공간을 할당하고, 지역 기술자(zone descriptor)및 페이지 기술자의 배열을 통해 상기 DRAM을 관리할 수 있다.The memory controller may allocate a paging space for the DRAM during the booting of the computing system and manage the DRAM through an array of zone descriptors and page descriptors.
또한, 상기 메모리 제어부는, 상기 컴퓨팅 시스템이 턴 온 되거나 또는 턴 오프 되는 경우, 상기 복구 개의 프로세스 중 영속적 프로세스로 선택되지 않은 일부의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되어 상기 SCM에 저장된 슬랩 캐시(Slab Cache) 및 파일 페이지를 상기 SCM으로부터 삭제할 수 있다.In addition, when the computing system is turned on or turned off, the memory controller generates a slab cache (Slab) generated in a computing operation process for a portion of the recovery processes not selected as the permanent process. Cache) and file pages can be deleted from the SCM.
본 발명의 다른 일측에 따르면, SCM(Storage Class Memory)을 메인 메모리로 활용하여, 복수 개의 프로세스 중 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계, 및 휘발성 메모리를 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계를 포함하는, 컴퓨팅 방법이 제공된다.According to another aspect of the present invention, by using a storage class memory (SCM) as a main memory, performing a computing operation associated with at least some of the processes selected as a persistent process among a plurality of processes, and using volatile memory as the main memory Thus, performing a computing operation associated with some other process not selected as a persistent process of the plurality of processes is provided.
프로세스의 영속성을 동적으로 또는 탄력적으로(flexible) 지정하여, 사용자에 맞는 영속적 컴퓨팅 환경이 구현될 수 있다.By dynamically or flexibly specifying the persistence of a process, a persistent computing environment tailored to the user can be implemented.
프로세스의 영속성을 구현하기 위한 저장 공간 오버헤드(storage overhead) 또는 동작 시간 오버헤드가 최소화될 수 있다.Storage overhead or operating time overhead to implement process persistence can be minimized.
또한, 프로세스의 영속성 유지를 위해 시스템이 중지(freezing)될 필요가 없으므로, 시스템 안정성이나 일관성(consistence)을 보장하면서도 실행이 지속될 수 있다.In addition, the system does not need to be frozen to maintain process continuity, allowing execution to continue while ensuring system stability or consistency.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 도시한다.1 illustrates a computing system in accordance with one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템에서 영속적 프로세스의 처리 방법을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a processing method of a persistent process in a computing system according to an exemplary embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템에서 비영속적 프로세스의 처리 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a processing method of a non-persistent process in a computing system according to an exemplary embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템 내에서 SCM과 DRAM을 인식하는 물리 메모리 맵을 도시한다.4 illustrates a physical memory map that recognizes SCMs and DRAMs within a computing system in accordance with one embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시한다.5 illustrates a computing method in accordance with one embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 새로운 프로세스가 실행되는 경우, 영속적 프로세스인지의 여부를 판단하는 과정을 도시한다.FIG. 6 illustrates a process of determining whether a new process is a permanent process when a new process is executed in the computing method according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 컴퓨팅 시스템의 전원이 차단되는 경우의 처리 방법을 도시한다.FIG. 7 illustrates a processing method when the power of the computing system is cut off in the computing method according to an exemplary embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따라, 컴퓨팅 시스템에 전원 공급이 재개되는 경우의 처리 방법을 도시한다.8 illustrates a processing method when power is resumed to a computing system, in accordance with an embodiment of the present invention.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, some 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), 메모리 제어부(Memory controller)(130) 및 저장부(Storage)(140)를 포함한다.The computing system 100 includes a processor 110, a main memory 120, a memory controller 130, and a storage 140 that process a plurality of processes.
본 발명의 일 실시예에 따르면, 메인 메모리(120)는 상기 복수 개의 프로세스 중 적어도 일부에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 SCM(Storage Class Memory)(121), 상기 복수 개의 프로세스 중 다른 일부에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 DRAM(Dynamic Random Access Memory)(122)를 포함한다. 여기서 DRAM(122)은 메인 메모리로서 동작할 수 있는 휘발성 메모리(volatile memory)의 일 예이며, 다른 종류로 대체될 수 있음은 물론이다. 또한, 상기한 바와 같이, SCM은 NVRAM의 일 형태일 뿐이며, SCM 이외의 다른 NVRAM의 예시들이 본 발명으로부터 배제되는 것은 아니다. 이하 같다.According to an embodiment of the present invention, the main memory 120 is a storage class memory (SCM) 121 that operates as a main memory in a computing operation for at least some of the plurality of processes, and another part of the plurality of processes. Dynamic Random Access Memory (DRAM) 122 that acts as the main memory in the computing operation for. Here, the DRAM 122 is an example of volatile memory capable of operating as a main memory, and may be replaced with another type. In addition, as described above, the SCM is only one form of NVRAM, and examples of NVRAM other than the SCM are not excluded from the present invention. Same as below.
메인 메모리(120)는 프로세서(110)가 처리하는 복수 개의 프로세스에 대한 컴퓨팅 연산을 위해, 저장부(140)로부터 필요한 파일을 독출하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등의 원인에 의해 저장부(140)로 데이터가 옮겨지기 전까지 상기 프로세스에 대한 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장한다.The main memory 120 reads and temporarily stores a required file from the storage 140 for computing operations for a plurality of processes processed by the processor 110, and may be used to cause the computing operation of the process to be terminated. The data during the computing operation for the process and the result data are stored until the data is transferred to the storage 140.
종래에 휘발성 메모리, 이를테면 DRAM만을 컴퓨팅 연산의 메인 메모리로서 사용한 컴퓨팅 시스템에서는, 갑작스러운 전원 차단으로 인한 데이터 손실이 문제되었다.In conventional computing systems where only volatile memory, such as DRAM, is the main memory for computing operations, data loss due to sudden power off has been a problem.
이러한 데이터 손실에 대한 해결방법으로서, 체크 포인팅(Check pointing)을 기반으로 하는 연구들이 수행되었다. 체크 포인팅은 메인 메모리에 있는 프로세스의 실행 이미지를 저장장치(storage)에 주기적으로 저장하는 기법이다.As a solution to such data loss, studies based on check pointing have been conducted. Check pointing is a technique for periodically storing an execution image of a process in main memory in storage.
그러나, 이러한 체크 포인팅 기법은, 공간 오버헤드와 실행 시간 오버헤드가 커서 효율성이 낮다. 뿐만 아니라, 이러한 체크 포인팅 기법은 연속적으로 데이터를 백업하지 않아서, 데이터 백업 시점들 사이에 인터벌(interval)이 존재하며, 따라서 데이터 백업 시점들 사이에 변경된 데이터는 손실될 수 있다.However, this check pointing technique has low efficiency due to large space overhead and execution time overhead. In addition, such check pointing schemes do not back up data continuously, so there is an interval between data backup points, and thus data changed between data backup points may be lost.
또한 체크 포인팅 기법에 의한 데이터 백업 작업 중에 데이터 일관성(consistency)을 유지하기 위해, 프로세스가 처리될 수 없으므로, 프리징(freezing)이 발생된다.Also, in order to maintain data consistency during the data backup operation by the check pointing technique, freezing occurs because the process cannot be processed.
따라서, 갑작스러운 전원 차단 등의 이벤트에도 데이터 손실이 없도록 하기 위해서는 메인 메모리를 비휘발성 메모리(Non-volatile memory), 이를테면 비휘발성 램(Non-volatile RAM; NVRAM)로 채택하는 시도가 요구된다.Therefore, in order to prevent data loss even in the event of sudden power failure, an attempt to adopt main memory as non-volatile memory, such as non-volatile RAM (NVRAM), is required.
그러나, 메인 메모리 전체를 비휘발성 메모리로만 구성하는 것보다, 비휘발성 메모리와 휘발성 메모리를 함께 사용하여 구성하면 두 가지 메모리 특성의 장점을 모두 활용하면서도 단점이 보완될 수 있으며, 메모리 공간 분리를 통해 신뢰성(reliability) 및 가용성(availability) 측면에서의 향상을 도모할 수 있다.However, rather than configuring the entire main memory only with nonvolatile memory, using nonvolatile memory and volatile memory together can take advantage of both memory characteristics and make up for the shortcomings. Improvement in terms of reliability and availability can be achieved.
본 발명의 일 실시예에 따르면, 컴퓨팅 시스템에서 수행되는 복수 개의 프로세스는 영속적 프로세스(persistent process)와 비영속적 프로세스(non-persistent process)로 구별된다.According to one embodiment of the invention, a plurality of processes performed in the computing system are divided into a persistent process and a non-persistent process.
여기서 영속적 프로세스는, 프로세스에 대한 컴퓨팅 연산의 실행 중 발생되는 모든 데이터와 상태가 컴퓨팅 시스템의 전원 오프(power off) 시에도 보존되며, 때문에 시스템이 다시 파워 온(power on)되는 경우 컴퓨팅 연산의 실행이 지속되는 프로세스이다.A persistent process is herein where all data and state generated during the execution of the computing operation for the process are preserved even when the computing system is powered off, so that the execution of the computing operation when the system is powered on again. This is a lasting process.
한편, 비영속적 프로세스는, 프로세스에 대한 컴퓨팅 연산의 실행 중 발생되는 데이터와 상태가 컴퓨팅 시스템의 전원 오프에 의해 보존되지 않는 프로세스이다.A non-persistent process, on the other hand, is a process in which data and state generated during the execution of a computing operation for a process are not preserved by powering off the computing system.
본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)의 메인 메모리(120)는 영속적 프로세스에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 SCM(121) 및 비영속적 프로세스에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 DRAM(122)를 포함한다.The main memory 120 of the computing system 100 according to an embodiment of the present invention is the main memory in the computing operation for the non-persistent process and the SCM 121 operating as the main memory in the computing operation for the persistent process. DRAM 122 that operates.
상기한 바와 같이, SCM(121)에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등의 예가 있다. 다만, 이는 예시적인 것에 불과하며, 본 발명은 일부 실시예에 의해 한정되지 않는다.As described above, the SCM 121 includes, for example, a phase change RAM (PCRAM), a magnetroresistive RAM (MRAM), a ferroelectric RAM (FeRAM), and the like. However, this is merely exemplary, and the present invention is not limited by some embodiments.
그리고, 이러한 SCM(121) 및 DRAM(122)은 메모리 제어부(130)에 의해 제어될 수 있다.In addition, the SCM 121 and the DRAM 122 may be controlled by the memory controller 130.
컴퓨팅 시스템(100)에서 처리되는 복수 개의 프로세스 중, 사용자에 의해 설정되는, 및/또는 시스템 운영 체제에 의해 선택되는 적어도 일부의 프로세스가 영속적 프로세스로 선택된다.Of the plurality of processes processed in the computing system 100, at least some of the processes set by the user and / or selected by the system operating system are selected as persistent processes.
여기서 특정 프로세스가 영속적 프로세스로 선택되는지의 여부를 프로세스의 영속성(persistence) 설정이라 한다.Here, whether or not a specific process is selected as a persistent process is called setting the persistence of the process.
이 영속성의 설정은 컴퓨팅 시스템의 유저에 따라 다른 기준을 적용 받을 수도 있다. 이를테면 그래픽 디자이너의 컴퓨팅 시스템에서는 이미지 편집 프로세스가 영속적 프로세스로 설정될 수 있으며, 작가의 컴퓨팅 시스템에서는 워드 프로세서가 영속적 프로세스로 설정될 수 있다.This setting of persistence may be subject to other criteria, depending on the user of the computing system. For example, in the computing system of a graphic designer, an image editing process may be set as a permanent process, and in the author's computing system, a word processor may be set as a permanent process.
이러한 영속성의 설정 기준 및/또는 개별적인 프로세스들에 대한 구체적인 영속성 설정 값은, 임의의 시점에 동적으로 변경될 수도 있다. 이를테면 컴퓨팅 시스템의 동작 중에 유저에 의해, 또는 시스템에 의해 일부 프로세스가 임시적으로 또는 지속적으로 영속적 프로세스로 설정될 수도 있다.Such setting criteria of persistence and / or specific persistence setting values for individual processes may be changed dynamically at any point in time. For example, some processes may be temporarily or persistently set by the user or by the system during operation of the computing system.
한편, 새로운 프로세스가 실행되는 경우, 사용자 또는 시스템에 의해 상기 새로운 프로세스의 영속성이 설정될 수 있다. 여기서 시스템에 의한 영속성의 설정은, 컴퓨팅 시스템 내에서 미리 확립된 상기 영속성의 설정 기준에 의해 상기 새로운 프로세스의 영속성이 설정되는 것이다.Meanwhile, when a new process is executed, the persistence of the new process may be set by a user or a system. Here, the setting of the persistence by the system is that the persistence of the new process is set by the setting criteria of the persistence established in the computing system in advance.
그리고, 이 경우 사용자에 의한 프로세스의 영속성 설정과, 시스템에 의한 프로세스의 영속성 설정 간에는 어느 하나가 우선순위가 높은 것으로 지정될 수 있다. 이를테면, 컴퓨팅 시스템(100)에서 새로운 프로세스가 실행되는 경우, 컴퓨팅 시스템(100)은 상기 새로운 프로세스를 영속적 프로세스로 설정할 것인지의 여부에 관한 답을 사용자로부터 입력 받을 수 있다. 그리고, 이렇게 입력 받은 답은 시스템 스스로 확립한 다른 기준에 의한 영속성 설정 결과에 우선할 수 있다.In this case, either of the process's persistence setting by the user and the process's persistence setting by the system may be designated as having a high priority. For example, when a new process is executed in the computing system 100, the computing system 100 may receive an answer from the user as to whether to set the new process as a permanent process. And, the answer received in this way can take precedence over the result of setting the persistence by other criteria established by the system itself.
그리고 상기한 바와 같이, 개별적인 프로세스에 대해 사용자가 영속성을 설정할 수 있도록, 설정 프로그램이 컴퓨팅 시스템(100)에 포함될 수 있다.As described above, a setup program may be included in the computing system 100 to allow a user to set persistence for an individual process.
한편, 본 발명의 일 실시예에 의하면, 상기 새로 실행되는 프로세스가 다른 프로세스에 연관되어 있는 경우, 연관된 프로세스의 영속성을 상속받는 것도 가능하다.Meanwhile, according to an embodiment of the present invention, when the newly executed process is associated with another process, it is also possible to inherit the persistence of the associated process.
이를 테면, 상기 새로 실행되는 프로세스가 다른 프로세스의 연관 어플리케이션이거나, 종속적 프로세스인 경우, 그 프로세스가 영속적 프로세스이면 상기 새로 실행되는 프로세스도 영속적 프로세스로 결정하는 방식이다.For example, when the newly executed process is an associated application of another process or a dependent process, if the process is a persistent process, the newly executed process is determined as a persistent process.
물론, 운영체제의 쉘(Shell)과 같은 프로세스의 경우, 다른 대부분의 프로세스와 연관되어 있으므로, 상기 운영체제의 커널 프로세스 및 쉘 등은 무조건 영속적 프로세스로 설정하되, 다른 연관 프로세스들에 이러한 영속성이 상속되지 않도록 예외 설정을 하는 것도 가능하다.Of course, in the case of a process such as a shell of the operating system, since most of the other processes are associated with, the kernel process and the shell of the operating system are set to be a persistent process unconditionally, so that such persistence is not inherited by other related processes. It is also possible to set exceptions.
따라서, 본 발명의 실시예들에 의하면, 복수 개의 프로세스들은 선택적으로 영속적 프로세스 또는 비영속적 프로세스로 선택되고, 상기 각 경우에 있어서 SCM(121) 또는 DRAM(122)이 메인 메모리로서 동작하게 된다.Thus, according to embodiments of the present invention, a plurality of processes are selectively selected as a persistent process or a non-persistent process, and in each case, the SCM 121 or the DRAM 122 operate as the main memory.
영속적 프로세스 또는 비영속적 프로세스가 컴퓨팅 시스템(100)에 의해 처리되는 과정은 도 2 이하를 참조하여 보다 상세히 후술한다.The process by which the persistent or non-persistent process is processed by the computing system 100 will be described in more detail below with reference to FIG. 2.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)에서 영속적 프로세스의 처리 방법을 설명하기 위한 개념도(200)이다.2 is a conceptual diagram 200 illustrating a method of processing a persistent process in the computing system 100 according to an embodiment of the present invention.
본 발명의 일 실시예에 따르면 컴퓨팅 시스템(100)의 경우, 메인 메모리로서 SCM(121)과 DRAM(122)을 동시에 인식할 수 있다. 이 경우는 SCM(121)에서는 영속적 프로세스에 대해, 그리고 DRAM(122)에는 비영속적 프로세스에 대해, 각각 종래의 메인 메모리에서와 동일한 방식으로 캐싱이나 페이징이 수행될 수 있다.According to an embodiment of the present invention, the computing system 100 may simultaneously recognize the SCM 121 and the DRAM 122 as main memory. In this case, caching or paging may be performed in the SCM 121 for the persistent process and for the DRAM 122 for the non-persistent process, respectively, in the same manner as in the conventional main memory.
이러한 실시예에서는, 컴퓨팅 시스템(100) 및 메모리 제어부(130)에 의해 SCM(121) 및 DRAM(122) 모두가 인식되고 동작하므로, SCM(121) 및 DRAM(122)이 병렬적으로, 및/또는 상호 보완적으로 동작한다. 따라서, SCM(121) 및 DRAM(122) 사이의 시스템 상 레이어 또는 우선 순위에 차이가 없다.In this embodiment, since both the SCM 121 and the DRAM 122 are recognized and operated by the computing system 100 and the memory controller 130, the SCM 121 and the DRAM 122 are in parallel, and / Or complementarily. Thus, there is no difference in layer or priority on the system between the SCM 121 and the DRAM 122.
그러나, 경우에 따라서는 하드웨어적인 스펙의 한계 때문에, 또는 다른 어떤 이유에 의해서 상기 SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택될 수도 있다.In some cases, however, due to hardware limitations or for some other reason, either the SCM 121 or the DRAM 122 is selected to function as a high priority primary memory and the other is a separate auxiliary. It may be chosen to function as a memory.
이하에서는, 본 발명의 일부 실시예에 따라, SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택되는 실시예를 설명하지만, 본 발명이 이러한 형태에 의해 제한적으로 해석되어서는 안 된다. 특히, 상기한 바와 같이, 컴퓨팅 시스템(100) 및 메모리 제어부(130)에 의해 SCM(121) 및 DRAM(122) 모두가 인식되고 동작하는 경우의 실시예가 배제되어서는 안 된다.Hereinafter, according to some embodiments of the present invention, an embodiment in which either the SCM 121 or the DRAM 122 is selected to function as a high priority primary memory and the other is selected to function as a separate auxiliary memory. However, the present invention should not be limitedly interpreted by this form. In particular, as described above, an embodiment in which both the SCM 121 and the DRAM 122 are recognized and operated by the computing system 100 and the memory controller 130 should not be excluded.
다시, SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택되는 실시예를 설명한다.Again, an embodiment in which either the SCM 121 or the DRAM 122 is selected to function as a high priority primary memory and the other is selected to function as a separate auxiliary memory will be described.
본 실시예에 따르면, SCM(121)이 컴퓨팅 시스템(100)의 기본 메모리로서 커널(210)에 의해 인식될 수 있다. 이 경우, 커널(210)이 접근하는 메모리 제어부(130) 및 인터페이스를 통해 SCM(121)에 대한 접근이 이루어진다.According to the present embodiment, the SCM 121 may be recognized by the kernel 210 as a basic memory of the computing system 100. In this case, the SCM 121 is accessed through the memory controller 130 and the interface accessed by the kernel 210.
그리고, 종래의 커널에 대한 수정을 최소화 하고, 구동 효율성을 높이기 위해 프로세스의 영속성에 상관 없이 커널(210), 영속적 프로세스들(220) 및 비영속적 프로세스들 전체의 슬랩 캐시(Slab Cache)(230)는 모두 기본 메모리인 SCM(121)에 저장될 수 있다.In order to minimize modifications to the conventional kernel and to improve driving efficiency, the slab cache 230 of the kernel 210, the persistent processes 220, and the non-persistent processes may be independent of the process persistence. Are all stored in the basic memory SCM 121.
그리고 파일 페이지(250)의 경우도 커널(210), 영속적 프로세스들(220) 및 비영속적 프로세스들 전체가 기본 메모리인 SCM(121)에 저장될 수 있다.In the case of the file page 250, the kernel 210, the persistent processes 220, and all of the non-persistent processes may be stored in the SCM 121, which is a basic memory.
익명 페이지(240)의 경우는 영속적 프로세스들(220)의 것만이 SCM(121)에 저장된다.In the case of anonymous page 240, only those of persistent processes 220 are stored in SCM 121.
SCM 관리자가 상기 내용들에 대한 관리를 수행하고, 데이터가 SCM 셀(270)에 저장되는 내용은 통상의 메인 메모리의 경우와 같다.The SCM manager manages the above contents, and the contents of the data stored in the SCM cell 270 are the same as those of the normal main memory.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)에서 비영속적 프로세스의 처리 방법을 설명하기 위한 개념도(310)이다.3 is a conceptual diagram 310 for explaining a method of processing a non-persistent process in the computing system 100 according to an embodiment of the present invention.
상기한 바와 같이, 컴퓨팅 시스템(100)의 경우, 메인 메모리로서 SCM(121)과 DRAM(122)을 동시에 인식할 수 있는 실시예에서는 SCM(121)과 DRAM(122)은 각각 영속적 프로세스와 비영속적 프로세스에 대해 별도의 메인 메모리 역할을 수행한다.As described above, in the embodiment in which the computing system 100 can simultaneously recognize the SCM 121 and the DRAM 122 as main memory, the SCM 121 and the DRAM 122 are each a permanent process and a non-persistent process. It acts as a separate main memory for the process.
그러나, 도 2를 참조하여 상술한 실시예에서는, DRAM(122)이 보조적 메모리이므로, DRAM(122)을 인식하기 위해 기본적 메모리를 인식하는 메모리 제어부(130)의 구조가 변경되어 DRAM(122)을 인식하거나, 또는 DRAM(122) 인식 및 구동을 위한 별도의 관리자와 인터페이스가 컴퓨팅 시스템(100)에 구비될 수 있다.However, in the embodiment described above with reference to FIG. 2, since the DRAM 122 is an auxiliary memory, the structure of the memory control unit 130 that recognizes the basic memory is changed to recognize the DRAM 122, thereby changing the DRAM 122. The computing system 100 may be provided with a separate manager and an interface for recognizing or driving the DRAM 122.
이 때, 비영속적 프로세스들(310)의 슬랩 캐시(Slab. Cache)(230) 및 파일 맵핑된 페이지들(250)의 경우 SCM(121)에 저장되고, 이는 도 2의 개념도에서 설명한 바와 같다. In this case, the slab cache 230 and the file mapped pages 250 of the non-persistent processes 310 are stored in the SCM 121, as described in the conceptual diagram of FIG. 2.
한편, 파일 페이지에 대하여 메모리에 로드된 후 내용이 변경된 더티(dirty) 페이지는 SCM에 저장하고, 내용 변경이 없는 클린(clean) 페이지는 DRAM에 저장할 수도 있다. On the other hand, dirty pages whose contents have been changed after being loaded into memory for the file page may be stored in the SCM, and clean pages having no contents may be stored in the DRAM.
그리고, 비영속적 프로세스들의 익명 페이지(Anonymous page)(320)은 DRAM(122) 내에 저장된다. 다만, DRAM(122)이 기본 메모리인 SCM(121)의 보조적 메모리인 실시예이므로, DRAM 관리자(330)가 이러한 페이징을 DRAM 셀(340)에 수행하는 과정은 통상적인 메인 메모리에서와 다르게 설정될 수 있다.And, an anonymous page 320 of non-persistent processes is stored in DRAM 122. However, since the DRAM 122 is an embodiment of the secondary memory of the SCM 121 which is the primary memory, the process of the DRAM manager 330 performing the paging to the DRAM cell 340 may be different from that of the conventional main memory. Can be.
본 발명의 일부 실시예에서는 이러한 구현을 위해 리눅스 커널 2.6.21 기반으로 약간의 코드가 수정된 커널을 통해 메모리 제어부(130)가 SCM(121) 및 DRAM(122)을 관리한다.In some embodiments of the present invention, the memory controller 130 manages the SCM 121 and the DRAM 122 through a kernel in which some code is modified based on the Linux kernel 2.6.21.
다만, 본 발명이 일부의 운영 체제 커널 환경, 이를테면 리눅스 커널에 의해 구현되는 것으로 제한 해석되어서는 안 되며, 상기 리눅스 커널 2.6.21 기반의 구현은 일부 실시예에 불과하다.However, the present invention should not be construed as being limited to being implemented by some operating system kernel environments, such as the Linux kernel, and the Linux kernel 2.6.21-based implementation is merely an embodiment.
이하에서는 리눅스 커널 2.6.21 기반의 구현을 설명하고, 다른 실시예에 의한 구현의 설명은 생략한다.Hereinafter, an implementation based on Linux kernel 2.6.21 will be described, and description of the implementation by another embodiment will be omitted.
본 실시예에서, 커널(210)은 부팅 과정에서 ioremap()으로 DRAM(121)을 인식하고 그 리턴 값으로 받는 가상 주소를 시작으로 하는 공간에 대해 페이징을 수행한다.In this embodiment, the kernel 210 recognizes the DRAM 121 with ioremap () during the booting process and performs paging for a space starting with a virtual address received as the return value.
본 실시예에서 추가적, 보조적으로 인식된 DRAM(122)은 vrzoone 이라는 지역(zone) 기술자(descriptor)와 vrzone_mem_map_t 라는 페이지 기술자의 배열에 의해 관리된다. 이러한 vrzone 또는 vrzone_mem_map_t 자료구조 자체는 부팅 과정에서 초기화되므로, SCM(121) 상에 존재할 수 있다.In this embodiment, the additionally and auxiliaryly recognized DRAM 122 is managed by an array of zone descriptors called vrzoone and page descriptors called vrzone_mem_map_t. Since the vrzone or vrzone_mem_map_t data structure itself is initialized during the boot process, it may exist on the SCM 121.
한편, 도 2 내지 도 3을 참조하여 서술한 실시예에서, SCM(121) 내에는 비영속적 프로세스의 슬랩 캐시, 파일 페이지 등이 저장되는데, 컴퓨팅 시스템(100)의 전원이 꺼졌다 켜지는 경우 이러한 것들을 제거될 수 있다. 즉, 비영속적 프로세스의 메타 데이터(meta data) 등 잔재가 소거될 수 있다.Meanwhile, in the embodiment described with reference to FIGS. 2 and 3, the SCM 121 stores a slab cache, a file page, and the like of a non-persistent process, and these are stored when the computing system 100 is powered off and on. Can be removed. That is, residuals such as metadata of a non-persistent process may be erased.
물론 이러한 비영속적 프로세스의 잔재 소거 과정은, 컴퓨팅 시스템의 전원이 꺼지는 시점, 또는 전원이 다시 켜지는 시점, 또는 다른 특정한 임의의 시점으로 설정될 수 있다.Of course, the residue erasing process of this non-persistent process may be set to a point in time when the computing system is powered off, or a point in time when the power is turned back on, or any other specific point in time.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템 내에서 SCM(121)과 DRAM(122)을 인식하는 예시적 물리 메모리 맵(Physical memory map) (400)을 도시한다.4 illustrates an example physical memory map 400 that recognizes the SCM 121 and the DRAM 122 within a computing system in accordance with one embodiment of the present invention.
본 실시예에서는 DRAM(122)에 대해 커널(210)이 접근할 수 있도록 DRAM(122)에 대한 주소 변환 방법이 제공된다.In this embodiment, an address translation method for the DRAM 122 is provided so that the kernel 210 can access the DRAM 122.
커널에서는 물리 주소와 가상 주소, 페이지 테이블 엔트리(PTE), 페이지 기술자의 주소, 물리 페이지 프레임 번호(PFN) 등의 여러 값들이 메모리 엑세스(memory access)를 위해 서로 변환되어 사용될 수 있다.In the kernel, various values such as a physical address, a virtual address, a page table entry (PTE), a page descriptor address, and a physical page frame number (PFN) may be converted to and used for memory access.
그리고 커널이 DRAM(122)에 접근할 때에도, 이러한 값들이 서로 변환되어 사용된다. 여기서 기본적인 주소 변환 방법에 대응되는 매크로/함수들은 접두어 "vr_"을 붙여서 표시되었다.And even when the kernel approaches DRAM 122, these values are converted to each other and used. The macros / functions corresponding to the basic address translation method are indicated with the prefix "vr_".
이를 테면, 물리 주소를 가상 주수로 변환할 때 사용하는 page_addess()는 vr_page_address() 등으로 대응되도록 설정된다.For example, page_addess () used when converting a physical address into a virtual number of weeks is set to correspond to vr_page_address ().
다만, 상기 PTE와 상기 PFN 사이의 변환은 DRAM(122)을 위한 별도의 추가적 변환 방법은 요구되지 않는다.However, the conversion between the PTE and the PFN does not require a separate additional conversion method for the DRAM 122.
DRAM을 관리하기 위한 DRAM 관리자(도 3의 330)는 리눅스의 버디(Buddy) 시스템 코드를 활용할 수 있다. 비록 상기 실시예에서는 비영속적 프로세스들(310)의 익명 페이지(320)에 대해 한해서 DRAM(122)이 사용된다. 그러나, 이는 본 발명의 구현을 위한 일 실시예에 불과하고, SCM(121)과 DRAM(122)을 동시에 인식하고 구현하는 컴퓨팅 시스템에서는 비영속적 프로세스들(310)에 대한 슬랩 캐시(Slab. Cache)(230) 및 파일 페이지(250)들에 대해서도 DRAM(122)이 사용될 수 있음은 상기한 바와 같다.A DRAM manager (330 of FIG. 3) for managing DRAM may utilize Linux's Buddy system code. Although in this embodiment, DRAM 122 is used only for anonymous page 320 of non-persistent processes 310. However, this is only one embodiment for the implementation of the present invention, and in a computing system that simultaneously recognizes and implements the SCM 121 and the DRAM 122, a slab cache for non-persistent processes 310 may be used. As described above, the DRAM 122 may also be used for the 230 and the file pages 250.
한편, DRAM 페이지 할당과 해제를 위한 인터페이스도 접두어 "vr_"을 붙인 이름으로 표시된다. 이를테면 alloc_pages() 함수는 vr_alloc_pages()에 대응된다. DRAM 페이지는 비영속적 프로세스의 익명 페이지에서 사용되며, 페이지 폴트(fault) 루틴에 vr_do_wp_page(), vr_do_no_page(), vr_do_anonymous_page() 함수가 추가되어 익명 페이지(320)에 대한 요청이 발생할 때 할당이 이루어진다.Meanwhile, interfaces for allocating and freeing DRAM pages are also displayed with names prefixed with "vr_". For example, the alloc_pages () function corresponds to vr_alloc_pages (). DRAM pages are used in anonymous pages of non-persistent processes, and vr_do_wp_page (), vr_do_no_page (), and vr_do_anonymous_page () functions are added to the page fault routine to allocate when a request for an anonymous page 320 occurs.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시한다.5 illustrates a computing method in accordance with one embodiment of the present invention.
임의의 프로세스가 프로세서에 의해 처리되는 경우, 단계(S510)에서 상기 프로세스가 영속적 프로세스인지 여부가 식별된다.If any process is handled by the processor, it is identified in step S510 whether the process is a persistent process.
다만, 상기한 바와 같이 상기 프로세스의 영속성이 미리 지정되어 있지 않은 경우는, 사용자에 의해 지정될 수 있도록 유저 인터페이스를 통해 사용자 입력을 받아서 영속성을 결정할 수 있다.However, as described above, when the persistence of the process is not specified in advance, the persistence may be determined by receiving a user input through a user interface so as to be designated by the user.
또한, 새로 시작되는 프로세스의 경우, 연관 프로세스가 있다면 그 연관 프로세스의 영속성을 상속받는 것도 가능하다.In addition, for a newly started process, if there is an associated process, it is possible to inherit the persistence of the associated process.
영속성의 상속에 관한 정책은 다양하게 확립될 수 있으며, 이를테면 비영속적 프로세스의 자식 프로세스(child process, or dependent process, 이하 같다)는 비영속적 프로세스로 결정될 수 있다.Policies on inheritance of persistence can be established in various ways, for example, a child process (or dependent process) of a non-persistent process can be determined as a non-persistent process.
영속적 프로세스 중, 커널 프로세스 및 유저에 의해 영속성을 지정 받은 프로세스는 자식 프로세스에게 영속성을 상속할 수 있다.Among persistent processes, processes that have been assigned persistence by kernel processes and users can inherit persistence from child processes.
다만, 상술한 바와 같이, 일부의 영속적 프로세스는 자식 프로세스에 영속성을 상속하지 않는다. 이를테면, 컴퓨팅 시스템의 부팅 중에 생성되는 쉘(shell)은 모든 프로세스의 부모 프로세스(parent process)가 되므로, 자식 프로세스에게 영속성을 상속하게 되면 컴퓨팅 시스템에서 처리되는 모든 프로세스가 영속성을 갖게 되므로, 이러한 경우에는 영속성을 상속하지 않도록 지정되는 것이다.However, as described above, some of the persistent processes do not inherit persistence to child processes. For example, a shell created during the boot of a computing system becomes the parent process of all processes, so inheriting persistence from a child process makes all processes processed in the computing system persistent. It is specified not to inherit persistence.
한편, 이러한 프로세스의 영속성은, 별도의 자료구조 내의 영속성 필드(persistence field in a data structure)에 저장되어 관리될 수도 있다. 이러한 필드에서 비영속적 프로세스는, 이를테면 영속성의 식별 값이 0으로 설정될 수 있고, 영속적 프로세스이고 자식 프로세스에게 영속성을 상속하는 프로세스는 1, 영속적 프로세스이지만 자식 프로세스에게 영속성을 상속하지 않는 프로세스는 2로 각각 식별 값이 설정될 수 있다.On the other hand, the persistence of such a process may be stored and managed in a persistence field in a data structure. In these fields a non-persistent process, for example, can have its identity set to zero, a process that is persistent and inherits persistence to child processes 1, which is persistent but 2 that does not inherit persistence to child processes. Each identification value can be set.
이 경우, 상기한 바와 같이, 프로세서의 영속성이 지정되거나 도중에 해제되는 경우에는 이러한 영속성 필드 값이 변경되는 과정이 수행된다.In this case, as described above, when the persistence of the processor is designated or released in the middle, the process of changing the value of the persistence field is performed.
비영속적 프로세스에 대해 영속성을 지정하게 되면, DRAM(122)에 할당되었던 페이지들을 SCM(121)으로 옮기고 이 과정을 성공적으로 마친 경우, 상기한 영속성 필드 값을 0에서 1로 변경한다.When the persistence is designated for the non-persistent process, the pages allocated to the DRAM 122 are transferred to the SCM 121, and when the process is successfully completed, the value of the persistence field is changed from 0 to 1.
구체적으로는, DRAM(122)에 할당된 페이지들을 프로세스의 영역 기술자(region describer)인 vm_area_struct 자료구조의 리스트를 통해 찾고, DRAM(122)의 페이지의 내용을 SCM(121) 내에 새로 할당되는 페이지에 복사하고, 이에 대한 PTE를 수정한다. 이러한 과정에서 메모리 부족 등의 이유로 영속성 지정 과정이 실패되면, DRAM(122)으로 페이지들을 복구시키고, 영속성 지정 실패 보고를 리턴한다.Specifically, the pages allocated to the DRAM 122 are found through the list of the vm_area_struct data structure, which is a region describer of the process, and the contents of the pages of the DRAM 122 are assigned to the pages newly allocated in the SCM 121. Copy and modify the PTE for it. In this process, if the persistence specification process fails due to lack of memory or the like, the pages are restored to the DRAM 122, and a report on the failure of the persistent assignment is returned.
영속적 프로세스로 지정되었던 프로세스에 대한 영속성의 해제 과정은 상기 내용과 반대이다.The process of releasing persistence for a process that has been designated as a persistent process is contrary to the above.
다시 도 5를 참조하여 컴퓨팅 방법을 설명하면, 이렇게 단계(S510)에서 임의의 프로세스에 대해 영속적 프로세스인지의 여부가 식별되고, 만약 영속적 프로세스인 경우에는 단계(S520)에서 SCM(121)을 메인 메모리로 선택하여 프로세스가 수행되며(S540), 그렇지 않고 비영속적 프로세스라면 단계(S530)에서 DRAM(122)을 메인 메모리로 선택하여 프로세스가 수행된다(S540).Referring back to FIG. 5, the computing method is thus identified in step S510 whether it is a persistent process for any process, and if it is a persistent process, then in step S520 the SCM 121 is stored in main memory. In operation S540, the process is performed by selecting the DRAM 122 as the main memory in operation S530.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 새로운 프로세스가 실행되는 경우, 영속적 프로세스인지의 여부를 판단하는 과정을 도시한다.FIG. 6 illustrates a process of determining whether a new process is a permanent process when a new process is executed in the computing method according to an embodiment of the present invention.
단계(S610)에서 새로운 프로세스가 실행되는 경우, 단계(S620)에서 상기 새로운 프로세스에 대한 영속성이 이미 지정되어 있는지, 즉 영속성 지정이 이미 존재하는 지의 여부가 판단된다. 만약 영속성이 이미 지정되어 있다면, 도 5의 단계(S510) 이하가 수행된다.When a new process is executed in step S610, it is determined in step S620 whether the persistence for the new process has already been specified, that is, whether the persistence specification already exists. If the persistence is already specified, step S510 of FIG. 5 or less is performed.
그러나, 영속성이 미리 지정되지 않았다면, 단계(S630)에서 상기 새로 실행되는 프로세스에 연관된 프로세스가 존재하는 지의 여부가 판단된다. 연관된 프로세스가 존재한다면, 단계(S640)에서 연관 프로세서의 영속성을 상속하고 다시 도 5의 단계(S510) 이하가 수행된다.However, if the persistence is not specified in advance, it is determined in step S630 whether there is a process associated with the newly executed process. If there is an associated process, in step S640 the persistence of the associated processor is inherited and step S510 of FIG. 5 or less is performed again.
그렇지 않고, 단계(S630)에서 연관 프로세서가 존재하지 않는 것으로 판단되면, 사용자 인터페이스를 통해 영속성 지정 입력을 수신한 후(S650), 도 5의 단계(S510)이하가 수행된다.Otherwise, if it is determined in step S630 that there is no associated processor, after receiving the persistent designation input through the user interface (S650), the following steps (S510) of FIG. 5 are performed.
상세한 내용은 도 2 내지 도 5를 참조하여 상술한 바와 같다.Details are as described above with reference to FIGS. 2 to 5.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 컴퓨팅 시스템의 전원이 차단되는 경우의 처리 방법을 도시한다.FIG. 7 illustrates a processing method when the power of the computing system is cut off in the computing method according to an exemplary embodiment of the present invention.
컴퓨팅 시스템(100)에서 프로세스들이 수행되는 도중, 시스템 전원의 차단이 감지되는 경우(S710), 컴퓨팅 시스템(100)에 포함되는 임시 전원 공급부(도시 되지 않음)로부터 임계 시간 동안 전원이 공급된다.While the processes are being performed in the computing system 100, when a shutdown of the system power is detected (S710), power is supplied from the temporary power supply (not shown) included in the computing system 100 for a threshold time.
그러면, 단계(S720)에서, 상기 임계 시간 내에 프로세서의 레지스터, 캐시 데이터, 컴퓨팅 시스템의 디바이스 정보 등, 시스템 재구동을 위한 필요 정보들이 SCM(121)으로 백업된다.Then, in step S720, necessary information for system restart, such as a register of the processor, cache data, and device information of the computing system, is backed up to the SCM 121 within the threshold time.
여기서, 상기 임시 전원 공급부는, 특정의 물리적 장치로 한정되는 것이 아니라, 시스템 내에 간단히 삽입될 수 있는 축전지(battery), 무정전 전원 공급 시스템(UPS), 듀얼 전원 공급 라인 등 어떤 형태가 될 수도 있다.Here, the temporary power supply unit is not limited to a specific physical device, but may be in any form such as a battery, an uninterruptible power supply system (UPS), a dual power supply line, and the like, which can be simply inserted into the system.
그리고, 상기 임계 시간은 설정에 의해 다르게 지정될 수 있으나, 통상적으로 수 밀리 세컨드 내지 수십 밀리 세컨드 수준에서 지정될 수 있다.In addition, the threshold time may be differently designated by a setting, but may be typically specified at several milliseconds to several tens of milliseconds.
이러한 백업 과정을 통해, 임의 시점의 갑작스러운 전원 차단 이벤트에서도 영속적 프로세스에 관한 모든 데이터 및 시스템 재가동 시 필요한 데이터들이 손실되지 않는 것이 보장된다.This backup ensures that all data about the persistent process and the data needed to restart the system are not lost, even in the event of a sudden power off at any point in time.
실시예에 따라서는, 컴퓨팅 시스템에 오류가 발생되는 경우 사용자에 의해 강제로 시스템이 리셋 되고, 그러면 상기 과정을 통해 시스템이 오류 전의 상태로 복구되는 응용도 가능하다.In some embodiments, an application may be forcibly reset by a user when an error occurs in the computing system, and then the system may be restored to the state before the error.
한편, 상기 단계(720)의 백업 과정에서는, SCM(121) 내의 임의의 주소에 백업되는 것도 가능하나, 본 발명의 일 실시예에 따르면, 그러한 백업을 위한 공간을 미리 지정해 두고, 전원 차단 등의 이벤트가 감지되면 항상 지정된 곳에 상기 백업을 하는 것도 가능하다.On the other hand, in the backup process of step 720, it is also possible to back up to any address in the SCM 121, according to an embodiment of the present invention, a space for such a backup in advance, such as power off, When an event is detected, it is also possible to always back up the specified location.
도 8은 본 발명의 일 실시예에 따라, 도 7의 전원 공급 차단 이벤트 이후에 컴퓨팅 시스템에 전원 공급이 재개되는 경우의 처리 방법을 도시한다.FIG. 8 illustrates a processing method when power supply to the computing system is resumed after the power supply shutdown event of FIG. 7 according to an embodiment of the present invention.
컴퓨팅 시스템에 전원 공급이 재개되면, 단계(S810)에서는, 도 7의 단계(S720)에서 백업되었던 프로세서 레지스터, 캐시 데이터, 디바이스 정보 등의 데이터를 다시 원위치로 복구(restore)한다.When the power supply to the computing system is resumed, in step S810, data such as processor registers, cache data, and device information, which have been backed up in step S720 of FIG. 7, may be restored.
상기한 바와 같이 단계(S720)의 백업 과정에서 SCM(121) 내에 백업을 위한 전용 공간이 지정되어 있던 경우라면, 이러한 복구 과정에서 상기 전용 공간의 어드레스로 바로 접근하여 데이터를 복구할 수 있을 것이다.As described above, if a dedicated space for a backup is designated in the SCM 121 in the backup process of step S720, data may be recovered by directly accessing an address of the dedicated space in this recovery process.
시스템 재가동 이후에는 단계(S510) 이하의 프로세스 수행이 계속된다.After restarting the system, the process of step S510 or less continues.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the present invention has been described with reference to limited embodiments and drawings, 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.

Claims (17)

  1. 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서;A processor that performs computing operations for the plurality of processes;
    메인 메모리의 적어도 일부로서 동작하는 NVRAM;NVRAM operating as at least part of main memory;
    상기 NVRAM과 함께 상기 메인 메모리의 다른 일부로서 동작하는 휘발성 메모리; 및A volatile memory operating with the NVRAM as another part of the main memory; And
    상기 NVRAM 및 상기 휘발성 메모리 중 적어도 하나를 제어하는 메모리 제어부A memory controller controlling at least one of the NVRAM and the volatile memory
    를 포함하는, 컴퓨팅 시스템.Including, a computing system.
  2. 제1항에 있어서,The method of claim 1,
    상기 NVRAM은 SCM(Storage Class Memory)인, 컴퓨팅 시스템.And the NVRAM is a storage class memory (SCM).
  3. 제2항에 있어서,The method of claim 2,
    상기 SCM은 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하고,The SCM serves as a main memory in computing operations associated with at least some processes selected as persistent processes among the plurality of processes,
    상기 휘발성 메모리는 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하는, 컴퓨팅 시스템.And the volatile memory serves as a main memory in computing operations associated with some other process of the plurality of processes that is not selected as a persistent process.
  4. 제2항에 있어서,The method of claim 2,
    새로운 제1 프로세스가 실행되는 경우,When a new first process runs
    상기 복수 개의 프로세스 중 상기 제1 프로세스에 연관된 프로세스가 존재한다면 상기 제1 프로세스는 상기 연관된 프로세스로부터 영속성을 상속받는, 컴퓨팅 시스템.And if there is a process associated with the first process among the plurality of processes, the first process inherits persistence from the associated process.
  5. 제2항에 있어서,The method of claim 2,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세스 및 상기 SCM에 임계 시간 동안 전원을 공급하는 임시 전원 공급부를 더 포함하고,When the power supply of the computing system is cut off, further comprising a temporary power supply for supplying power to the process and the SCM for a threshold time,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부가 상기 임계시간 내에 상기 SCM에 저장되는, 컴퓨팅 시스템.And when power to the computing system is interrupted, at least some of the registers, cache data, and device state information of the processor are stored in the SCM within the threshold time.
  6. 제5항에 있어서,The method of claim 5,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부는, 상기 SCM 내의 기설정된 제1 주소에 저장되는, 컴퓨팅 시스템.And when the power supply of the computing system is cut off, at least some of the registers, cache data, and device state information of the processor are stored at a predetermined first address in the SCM.
  7. 제6항에 있어서,The method of claim 6,
    상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 SCM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나가 복구(restore)되는, 컴퓨팅 시스템.And when power to the computing system is resumed, at least one of a register, the cache data, and the device state information of the processor is restored from a first predetermined address in the SCM.
  8. 제2항에 있어서,The method of claim 2,
    상기 SCM은, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 중 적어도 하나인, 컴퓨팅 시스템.The SCM is at least one of a phase change RAM (PCRAM), a magnetroresistive RAM (MRAM), a ferroelectric RAM (FeRAM).
  9. 제2항에 있어서,The method of claim 2,
    상기 메모리 제어부는, 상기 복수 개의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되는 슬랩 캐시(Slab Cache) 및 파일 페이지를 상기 SCM 내에 저장하는, 컴퓨팅 시스템.The memory controller is configured to store a slab cache and a file page generated in a computing operation for the plurality of processes in the SCM.
  10. 제9항에 있어서,The method of claim 9,
    상기 메모리 제어부는, 상기 컴퓨팅 시스템의 부팅 과정에서 상기 DRAM에 대한 페이징 공간을 할당하고, 지역 기술자(zone descriptor)및 페이지 기술자의 배열을 통해 상기 DRAM을 관리하는, 컴퓨팅 시스템.The memory controller allocates a paging space for the DRAM during the booting of the computing system and manages the DRAM through an array of zone descriptors and page descriptors.
  11. 제9항에 있어서,The method of claim 9,
    상기 메모리 제어부는, 상기 컴퓨팅 시스템이 턴 온 되거나 또는 턴 오프되는 경우, 상기 복수 개의 프로세스 중 영속적 프로세스로 선택되지 않은 일부의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되어 상기 SCM 및 DRAM에 저장된 슬랩 캐시(Slab Cache) 및 페이지 관련 데이터를 상기 SCM으로부터 삭제하는, 컴퓨팅 시스템.When the computing system is turned on or turned off, the memory controller generates a slab cache generated in a computing operation process for a part of the processes not selected as the persistent process among the plurality of processes and stored in the SCM and DRAM. Cache) and page related data from the SCM.
  12. SCM(Storage Class Memory)을 메인 메모리로 활용하여, 복수 개의 프로세스 중 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계; 및Utilizing storage class memory (SCM) as main memory to perform a computing operation associated with at least some processes selected as persistent processes among a plurality of processes; And
    휘발성 메모리를 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계Utilizing volatile memory as main memory to perform computing operations associated with some other processes not selected as persistent processes among the plurality of processes
    를 포함하는, 컴퓨팅 방법.Including, computing method.
  13. 제12항에 있어서,The method of claim 12,
    상기 복수 개의 프로세스 이외에 새로운 제1 프로세스가 실행되는 경우, 상기 복수 개의 프로세서 중 상기 제1 프로세스에 연관된 프로세스가 영속적인 프로세스로 선택된 것인지의 여부에 기초하여 상기 제1 프로세스의 영속성을 판단하는 단계When a new first process is executed in addition to the plurality of processes, determining the persistence of the first process based on whether a process associated with the first process among the plurality of processors is selected as the permanent process
    를 더 포함하는, 컴퓨팅 방법.Further comprising a computing method.
  14. 제12항에 있어서,The method of claim 12,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 임시 전원 공급부로부터 임계 시간 동안 전원을 공급받아, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부를 상기 SCM에 저장하는 단계When the power supply of the computing system is cut off, power is supplied from a temporary power supply for a threshold time, and at least some of the registers, cache data, and device state information of the processor are stored in the SCM.
    를 더 포함하는, 컴퓨팅 방법.Further comprising a computing method.
  15. 제14항에 있어서,The method of claim 14,
    상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부는, 상기 SCM 내의 기설정된 제1 주소에 저장되는, 컴퓨팅 방법.At least some of the processor's registers, cache data, and device state information are stored at a predetermined first address in the SCM.
  16. 제15항에 있어서,The method of claim 15,
    상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 SCM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나를 복구(restore)하는 단계Restoring at least one of a register, the cache data, and the device state information of the processor from a preset first address in the SCM when the power supply of the computing system is resumed.
    를 더 포함하는 컴퓨팅 방법.Computing method further comprising.
  17. 제12항 내지 제16항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of any one of claims 12 to 16.
PCT/KR2009/007920 2009-12-29 2009-12-29 Computing system and method for selectively implementing process persistence using nvram and volatile ram WO2011081232A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2009/007920 WO2011081232A1 (en) 2009-12-29 2009-12-29 Computing system and method for selectively implementing process persistence using nvram and volatile ram

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2009/007920 WO2011081232A1 (en) 2009-12-29 2009-12-29 Computing system and method for selectively implementing process persistence using nvram and volatile ram

Publications (1)

Publication Number Publication Date
WO2011081232A1 true WO2011081232A1 (en) 2011-07-07

Family

ID=44226628

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/007920 WO2011081232A1 (en) 2009-12-29 2009-12-29 Computing system and method for selectively implementing process persistence using nvram and volatile ram

Country Status (1)

Country Link
WO (1) WO2011081232A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016107429A1 (en) * 2014-12-31 2016-07-07 华为技术有限公司 Memory accessing method, storage-class memory, and computer system
WO2017155551A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Register store

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083405A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Power management block for use in a non-volatile memory system
US20070150654A1 (en) * 2005-12-27 2007-06-28 Samsung Electronics Co., Ltd. Storage apparatus using non-volatile memory as cache and method of managing the same
US7321959B2 (en) * 2002-10-02 2008-01-22 Matsushita Electric Industrial Co., Ltd. Control method of a non-volatile memory apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321959B2 (en) * 2002-10-02 2008-01-22 Matsushita Electric Industrial Co., Ltd. Control method of a non-volatile memory apparatus
US20040083405A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Power management block for use in a non-volatile memory system
US20070150654A1 (en) * 2005-12-27 2007-06-28 Samsung Electronics Co., Ltd. Storage apparatus using non-volatile memory as cache and method of managing the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016107429A1 (en) * 2014-12-31 2016-07-07 华为技术有限公司 Memory accessing method, storage-class memory, and computer system
US10223273B2 (en) 2014-12-31 2019-03-05 Huawei Technologies Co., Ltd. Memory access method, storage-class memory, and computer system
WO2017155551A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Register store

Similar Documents

Publication Publication Date Title
WO2011105860A2 (en) Method and apparatus for generating minimum boot image
US9946610B2 (en) Memory device and method for saving and restoring data using nonvolatile memory
US6687849B1 (en) Method and apparatus for implementing fault-tolerant processing without duplicating working process
JP5724477B2 (en) Migration program, information processing apparatus, migration method, and information processing system
WO2014157817A1 (en) Method for mapping page address based on flash memory and system therefor
WO2010041852A2 (en) Method and system for perpetual computing using non-volatile random access memory (nvram)
US20060085794A1 (en) Information processing system, information processing method, and program
US20100250908A1 (en) Concurrent Patching of Operating Systems
US20080177974A1 (en) System and method for reducing memory overhead of a page table in a dynamic logical partitioning environment
WO2013048023A2 (en) Method and apparatus for power loss recovery in a flash memory-based ssd
US6516342B1 (en) Method and apparatus for extending memory using a memory server
US20200042454A1 (en) System and method for facilitating cluster-level cache and memory space
JP2003051819A (en) Microprocessor
JP2004362426A (en) Information processing system, its control method, and computer program
WO2005071522A1 (en) High-speed restart method, information processing device, and program
JP3933587B2 (en) Computer system, computer apparatus, and operating system transfer method
JPWO2008099786A1 (en) Memory failure recovery method, information processing apparatus, and program
WO2014142553A1 (en) Interconnection fabric switching apparatus capable of dynamically allocating resources according to workload and method therefor
JP2009230596A (en) User data protection method for server device, server device, and computer program
WO2011081232A1 (en) Computing system and method for selectively implementing process persistence using nvram and volatile ram
US7644114B2 (en) System and method for managing memory
CN113127263B (en) Kernel crash recovery method, device, equipment and storage medium
KR101104361B1 (en) Computing system and method using nvram and volatile ram to implement process persistence selectively
JP2002099390A (en) Disk controller
CN113032091B (en) Method, system and medium for improving storage performance of virtual machine by adopting AEP

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09852834

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09852834

Country of ref document: EP

Kind code of ref document: A1