KR20190108712A - Method for recovering error in non-volatile main memory unit and system therefor - Google Patents

Method for recovering error in non-volatile main memory unit and system therefor Download PDF

Info

Publication number
KR20190108712A
KR20190108712A KR1020180030081A KR20180030081A KR20190108712A KR 20190108712 A KR20190108712 A KR 20190108712A KR 1020180030081 A KR1020180030081 A KR 1020180030081A KR 20180030081 A KR20180030081 A KR 20180030081A KR 20190108712 A KR20190108712 A KR 20190108712A
Authority
KR
South Korea
Prior art keywords
error
processes
history
main memory
recovering
Prior art date
Application number
KR1020180030081A
Other languages
Korean (ko)
Other versions
KR102052816B1 (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 KR1020180030081A priority Critical patent/KR102052816B1/en
Publication of KR20190108712A publication Critical patent/KR20190108712A/en
Application granted granted Critical
Publication of KR102052816B1 publication Critical patent/KR102052816B1/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Disclosed are an error recovery method in a nonvolatile main memory device environment and a system thereof. According to an embodiment of the present invention, the process error recovery method in a nonvolatile main memory device comprises: a step of storing execution processes of processes running in the nonvolatile main memory device in history storage corresponding to the processes; a step of receiving error information from an operating system if an error occurs in at least one process among the processes; and a step of using the history storage to recover from the error which has occurred in the at least one process corresponding to the received error information. The step of using the history storage to recover from the error analyzes a correlation between the at least one process in which the error has occurred and the remaining processes, and uses the analyzed correlation and the history storage to recover from the error which has occurred in the at least one process and errors of other processes associated with the at least one process.

Description

비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템 {Method for recovering error in non-volatile main memory unit and system therefor}Method for recovering error in non-volatile main memory unit and system therefor}

본 발명은 비휘발성 주기억장치에서 에러를 복구하는 기술에 관한 것으로서, 보다 구체적으로 비휘발성 주기억장치를 메모리로 가지는 시스템에서 프로세스 동작 시 발생하는 에러를 판단하고 이 에러를 복구할 수 있는 방법 및 그 시스템에 관한 것이다.The present invention relates to a technique for recovering an error in a nonvolatile main memory, and more particularly, to a method and system for determining an error occurring during an operation of a process in a system having a nonvolatile main memory as a memory and recovering the error. It is about.

주기억장치-보조기억장치 환경에서 프로세스 복구작업은 일반적으로 현재 실행 중인 데이터를 임시로 저장(temp file)하고 비정상 종료 시 재시작한 뒤 이 파일을 다시 처음부터 읽어오거나, 이전까지 정상적으로 동작중이던 프로그램 환경을 임시파일에 저장해 놓았다가 재시작과 동시에 복구루틴이 실행되며 그대로 덮어쓰는 등 기존 메모리의 휘발성을 기본으로 프로세스의 종료와 시작을 통해 동작하고 있다. In a main memory-secondary storage environment, a process recovery task is usually a temporary file of the currently running data, restarted at abnormal termination, and then read back from the beginning, or a program environment that has been operating normally before. The recovery routine is executed as soon as it is saved in a temporary file and restarted. It is operated by terminating and starting the process based on the volatility of the existing memory, such as overwriting it.

하지만, 비휘발성 주기억장치에서는 프로세스의 실행, 종료라는 상태가 없기 때문에 현재 쓰이는 복구루틴은 비휘발성 주기억장치 환경에는 적용이 불가능한 문제점이 있다.However, in the nonvolatile main memory, since there is no state of executing or terminating a process, the current recovery routine is not applicable to the nonvolatile main memory.

따라서, 비휘발성 주기억장치에서 에러 발생 시 에러를 복구할 수 있는 기술의 필요성이 대두된다.Therefore, there is a need for a technology capable of recovering an error when an error occurs in the nonvolatile main memory.

본 발명의 실시예들은, 비휘발성 주기억장치를 메모리로 가지는 시스템에서 프로세스 동작 시 발생하는 에러를 판단하고 이 에러를 복구할 수 있는 방법 및 그 시스템을 제공한다.Embodiments of the present invention provide a method and system for determining an error occurring in a process operation and recovering the error in a system having a nonvolatile main memory as a memory.

본 발명의 일 실시예에 따른 프로세스 에러 복구 방법은 비휘발성 주기억장치에서 프로세스 에러 복구 방법에 있어서, 상기 비휘발성 주기억장치에서 동작 중인 프로세스들 각각의 실행 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 단계; 상기 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하는 경우 운영체제로부터 에러 정보를 수신하는 단계; 및 상기 수신된 에러 정보에 대응하는 상기 적어도 하나의 프로세스에서 발생한 에러를 상기 히스토리 저장소를 이용하여 복구하는 단계를 포함한다.The process error recovery method according to an embodiment of the present invention is a process error recovery method in a nonvolatile main memory device, the execution process of each of the processes operating in the nonvolatile main memory device to the history storage corresponding to each of the processes; Storing; Receiving error information from an operating system when an error occurs in at least one of the processes; And recovering an error occurring in the at least one process corresponding to the received error information by using the history store.

상기 히스토리 저장소를 이용하여 복구하는 단계는 상기 에러가 발생한 적어도 하나의 프로세스와 나머지 프로세스 간의 연관 관계를 분석하고, 상기 분석된 연관 관계와 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 발생한 에러와 상기 적어도 하나의 프로세스와 연관된 다른 프로세스의 에러를 복구할 수 있다.The recovering by using the history repository may include analyzing an association between at least one process in which the error occurs and the rest of the process, and using the analyzed association and the history repository, an error occurring in the at least one process and the It is possible to recover from errors in other processes associated with at least one process.

상기 히스토리 저장소를 이용하여 복구하는 단계는 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 상기 적어도 하나의 프로세스에서 발생한 에러를 복구할 수 있다.The recovering using the history storage may recover an error occurring in the at least one process by restoring to a value before a time point at which the error occurred in the at least one process using the history storage.

상기 히스토리 저장소에 저장하는 단계는 상기 프로세스들 각각의 스택 변화 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장할 수 있다.The storing in the history store may store a stack change process of each of the processes in a history store corresponding to each of the processes.

상기 히스토리 저장소에 저장하는 단계는 상기 프로세스들 각각에 대응하는 히스토리 저장소를 상기 비휘발성 주기억 장치의 미리 설정된 공간에 공유하여 저장하거나 상기 프로세스들 각각의 공간 내에 저장할 수 있다.The storing of the history storage may include storing the history storage corresponding to each of the processes in a predetermined space of the nonvolatile main memory device or in the space of each of the processes.

본 발명의 일 실시예에 따른 프로세스 에러 복구 시스템은 비휘발성 주기억장치에서 프로세스 에러 복구 시스템에 있어서, 상기 비휘발성 주기억장치에서 동작 중인 프로세스들 각각의 실행 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 저장부; 상기 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하는 경우 운영체제로부터 에러 정보를 수신하는 수신부; 및 상기 수신된 에러 정보에 대응하는 상기 적어도 하나의 프로세스에서 발생한 에러를 상기 히스토리 저장소를 이용하여 복구하는 복구부를 포함한다.The process error recovery system according to an embodiment of the present invention is a process error recovery system in a nonvolatile main memory, wherein the execution process of each of the processes operating in the nonvolatile main memory is stored in a history store corresponding to each of the processes. A storage unit for storing; A receiver configured to receive error information from an operating system when an error occurs in at least one of the processes; And a recovery unit for recovering an error generated in the at least one process corresponding to the received error information by using the history storage.

상기 복구부는 상기 에러가 발생한 적어도 하나의 프로세스와 나머지 프로세스 간의 연관 관계를 분석하고, 상기 분석된 연관 관계와 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 발생한 에러와 상기 적어도 하나의 프로세스와 연관된 다른 프로세스의 에러를 복구할 수 있다.The recovery unit analyzes an association relationship between the at least one process in which the error occurs and the rest of the processes, and uses the analyzed association relationship and the history repository to determine an error occurring in the at least one process and another associated with the at least one process. Recover from errors in the process.

상기 복구부는 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 상기 적어도 하나의 프로세스에서 발생한 에러를 복구할 수 있다.The recovery unit may recover an error occurring in the at least one process by restoring to a value before a time point at which the error occurred in the at least one process using the history storage.

상기 저장부는 상기 프로세스들 각각의 스택 변화 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장할 수 있다.The storage unit may store a stack change process of each of the processes in a history store corresponding to each of the processes.

상기 저장부는 상기 프로세스들 각각에 대응하는 히스토리 저장소를 상기 비휘발성 주기억 장치의 미리 설정된 공간에 공유하여 저장하거나 상기 프로세스들 각각의 공간 내에 저장할 수 있다.The storage unit may share and store history storage corresponding to each of the processes in a predetermined space of the nonvolatile main memory device or in a space of each of the processes.

본 발명의 실시예들에 따르면, 주기억장치로 비휘발성 메모리가 사용된 환경에서 시스템 소프트웨어 문제가 발생하였을 경우 프로세스 스택정보를 활용하여 시스템 소프트웨어 에러를 복구함으로써, 비휘발성 주기억장치에서 에러 발생 시 에러를 복구할 수 있다.According to embodiments of the present invention, when a system software problem occurs in an environment in which a nonvolatile memory is used as a main memory device, the system software error is recovered by using process stack information, thereby recovering an error in the nonvolatile main memory device. Can be recovered.

비휘발성 메모리가 주기억장치와 보조기억장치의 역할을 모두 하게 되는 상황에선 메모리에서 프로세스가 내려가는 상황이 없어지기 때문에 프로세스의 실행과 종료라는 상태가 모호해진다.In a situation where nonvolatile memory serves as both a main memory and a secondary memory, the process of running and exiting the memory is obscured.

본 발명은 이런 상황에서 프로세스 실행과정을 로깅해줄 수 있는 히스토리(history) 구조체를 사용함으로써, 프로세스를 이전 상태로 안전하게 복구해줄 수 있을 뿐만 아니라 히스토리 구조체를 다양한 캐싱자료로 사용할 수도 있다.In the present invention, by using a history structure that can log process execution in such a situation, the process can be safely restored to a previous state, and the history structure can be used as various caching data.

본 발명은 주기억장치가 비휘발성 저장매체인 시스템 그리고 주기억장치가 비휘발성 저장매체인 환경에서 에러검출 및 복구가 필요한 시스템에 적용할 수 있다.The present invention can be applied to a system in which the main memory is a nonvolatile storage medium and a system requiring error detection and recovery in an environment in which the main memory is a nonvolatile storage medium.

도 1은 본 발명의 일 실시예에 따른 비휘발성 주기억장치에서 프로세스 에러 복구 방법에 대한 동작 흐름도를 나타낸 것이다.
도 2는 히스토리 저장소를 운영하는 방법을 설명하기 위한 예시도를 나타낸 것이다.
도 3은 도 2a의 히스토리 저장소를 운영하는 방법을 설명하기 위한 예시도를 나타낸 것이다.
도 4는 도 2b의 히스토리 저장소를 운영하는 방법을 설명하기 위한 예시도를 나타낸 것이다.
도 5는 도 1에 도시된 단계 S130에 대한 일 실시예의 동작 흐름도를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 주기억장치에서 프로세스 에러 복구 시스템에 대한 구성을 나타낸 것이다.
1 is a flowchart illustrating a process error recovery method in a nonvolatile main memory according to an embodiment of the present invention.
2 illustrates an example diagram for describing a method of operating a history repository.
FIG. 3 illustrates an exemplary diagram for describing a method of operating the history repository of FIG. 2A.
4 is an exemplary diagram for explaining a method of operating the history storage of FIG. 2B.
FIG. 5 shows an operation flowchart of an embodiment of step S130 shown in FIG. 1.
6 illustrates a configuration of a process error recovery system in a nonvolatile main memory according to an embodiment of the present invention.

이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, exemplary 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. Also, like reference numerals in the drawings denote like elements.

본 발명이 적용될 수 있는 환경으로는 휘발성을 비휘발성 메모리로 대체된 상황으로 이 비휘발성 메모리가 보조기억장치로 사용되는 HDD와 SSD의 역할도 함께 수행하고 있는 상황이다. 이 비휘발성 메모리는 전원공급이 중단되어도 이전의 데이터를 유지할 수 있는 메모리로, 비휘발성 메모리로는 PCM, Xpoint, STT-MRAM등 비휘발성이라는 속성을 지닌 저장공간 모두를 의미한다.In an environment to which the present invention can be applied, volatile is replaced with nonvolatile memory, and this nonvolatile memory also plays a role of HDDs and SSDs used as auxiliary storage devices. This nonvolatile memory is a memory that can retain previous data even when the power supply is interrupted. The nonvolatile memory refers to all non-volatile storage spaces such as PCM, Xpoint, and STT-MRAM.

기존에 메모리로 많이 사용되는 DRAM의 경우 전원공급 중단 시 기존에 저장중이던 데이터가 없어져 버리고 새로 시작 시 보조기억장치로부터 다시 데이터를 읽어온다. 일부 비휘발성 메모리에서는 보조기억장치와 상호작용하기위해 일시적으로 메모리를 초기화하는 기능을 제공하기도 하는데, 본 발명에서 한정한 환경에서는 전원공급이 중단되어도 데이터가 삭제되지 않고 부팅 및 프로세스들의 시작 루틴들이 모두 메모리에 상주하고 유지되는 환경이다. In the case of DRAM, which is frequently used as a memory, data stored in the memory is lost when the power supply is interrupted, and data is read again from the auxiliary memory device at the start of the new memory. Some non-volatile memory may provide a function of temporarily initializing the memory to interact with the auxiliary memory. In the limited environment of the present invention, data is not deleted even when the power supply is interrupted. It is an environment that resides and is maintained in memory.

본 발명에서 기본으로 삼고있는 환경에서는 CPU의 레지스터가 움직이며 메모리에 있는 데이터를 읽는 것만으로 모든 어플리케이션이 실행된다. 휘발성 메모리 - 비휘발성 보조기억장치 메모리구조에서는 에러상황에서 프로세스를 메모리에서 내리고 다시 로드하는 방법으로 처리한다. 컴퓨터가 꺼지진 않은 경우 다시 로드할때, 실행중일 때 임시파일에 저장된 기존에 수행중이던 프로세스 정보를 기억하도록 하거나 시스템을종료해 메모리를 초기화시킨후 다시 처음부터 실행하도록 하는 방법을 통해 복구작업이 이뤄진다. 비휘발성 메모리가 휘발성 메모리를 대체하게 될 경우 보조기억장치에서 데이터를 실행파일 형식으로 로드하고 링킹하는 모든 작업이 사라지고 에러가 난 부분 역시 저장공간에 저장이 되기 때문에 프로세스에 에러가 발생할 경우 휘발성을 이용한 복구작업이 불가능 하고 다시 로드하더라도 이전과 같은 상황에 직면하게 된다.In the environment based on the present invention, the CPU registers move and all applications are executed simply by reading data in the memory. Volatile Memory-A nonvolatile secondary memory memory architecture handles the process by taking the process out of memory and reloading it in the event of an error. When the computer is not turned off, when it is reloaded, the recovery process can be performed by remembering the information of the existing process stored in the temporary file when it is running, or by restarting the system after initializing the memory by shutting down the system. . When the nonvolatile memory replaces the volatile memory, all the operations of loading and linking data from the auxiliary memory to the executable file format are lost, and the error part is also stored in the storage space. Recovery is not possible and if you reload, you will face the same situation as before.

본 발명의 실시예들은, 주기억장치로 비휘발성 메모리(NVM; non-volatile memory)가 사용된 환경에서 시스템 소프트웨어 또는 시스템 프로세스 문제가 발생하였을 경우 프로세스 스택정보를 활용하여 시스템 소프트웨어 에러를 복구함으로써, 비휘발성 주기억장치에서 에러 발생 시 에러를 복구할 수 있다.Embodiments of the present invention utilizes process stack information to recover system software errors when a system software or system process problem occurs in an environment in which non-volatile memory (NVM) is used as the main memory. In the case of an error in the volatile main memory, the error can be recovered.

여기서, 본 발명은 이런 상황에서 프로세스 실행과정을 로깅해줄 수 있는 히스토리(history) 저장소를 사용함으로써, 에러가 발생한 프로세스를 이전 상태로 안전하게 복구해줄 수 있을 뿐만 아니라 히스토리 저장소를 다양한 캐싱자료로 사용할 수도 있다.Here, the present invention uses a history store that can log the process execution in such a situation, not only can you safely recover the error process to the previous state, but also can use the history store as various caching data. .

본 발명에서의 히스토리 저장소는 구조체, 테이블, 레코드 등의 여러 데이터 타입을 저장할 수 있는 모든 자료 구조 및 공간을 포함할 수 있다.The history store in the present invention may include all data structures and spaces capable of storing various data types such as structures, tables, records, and the like.

본 발명은 기존의 휘발성 메모리가 비휘발성 메모리로 속성이 바뀐 환경에서 프로세스 복구가 필요한 경우에 한정할 수 있으며, 운영체제로부터 검출된 에러 메시지(또는 에러 정보)를 수신하는 기능, 수신된 에러 메세지를 확인하여 알맞은 루틴으로 실행하는 기능을 포함할 수 있다.The present invention can be limited to the case where a process recovery is required in an environment in which the existing volatile memory is changed to a nonvolatile memory, a function of receiving an error message (or error information) detected from an operating system, and checking the received error message. This can include the ability to run with appropriate routines.

이러한 기능을 구현하기 위하여, 본 발명은 히스토리라 부를 수 있는 저장소를 구비하고, 비휘발성 주기억장치에서 실행되는 각 프로세스들은 히스토리 저장소와 연결될 수 있으며, 히스토리 저장소는 각 프로세스가 실행되면서 바뀐 데이터의 이전 값을 모두 저장해 놓게 된다.In order to implement this function, the present invention has a storage which can be called history, each process running in the nonvolatile main memory can be connected with the history storage, the history storage is the previous value of the data changed as each process is executed. You will save all of them.

즉, 프로세스가 처음 CPU를 선점하는 순간부터 히스토리 저장소에 스택 변화 과정이 기록되게 된다. 여기서, 본 발명은 프로세스의 모든 데이터를 저장하기엔 오버헤드가 크기 때문에 스택 값들에 한정하여 데이터를 수집할 수 있다.That is, from the moment the process first occupies the CPU, the stack change process is recorded in the history store. Here, the present invention can collect data limited to stack values because the overhead of storing all the data of the process is large.

본 발명은 이렇게 수집된 데이터 히스토리 로그에 기초하여 프로세스의 에러가 발생했을 경우 해당 프로세스를 정상적으로 동작하는 이전 상태로 복구할 수 있다.According to the present invention, when an error occurs in a process based on the collected data history log, the process may be restored to a previous state in which the process normally operates.

나아가, 본 발명은 프로세스의 에러가 발생하고, 이렇게 발생된 에러가 다른 프로세스의 함수에 영향을 주는 경우가 있을 수 있기 때문에 프로세스 간의 연관 관계를 분석하거나 프로세스 간의 연관 관계가 미리 저장된 정보를 바탕으로, 에러가 발생된 프로세스 뿐만 아니라 발생된 에러에 의해 연관 관계가 있는 다른 프로세스에서 발생되는 에러 또한 함께 복구할 수도 있다. Furthermore, in the present invention, since an error of a process occurs and the error may affect a function of another process, the analysis may be performed based on information about analyzing the association between processes or pre-stored association between processes. In addition to the process in which the error occurred, errors occurring in other processes that are related by the generated error can also be recovered.

본 발명에서의 프로세스는 쓰레드(thread)를 포함하는 프로세스일 수 있다.The process in the present invention may be a process including a thread.

이러한 본 발명에 따른 방법 및 시스템에 대해 도 1 내지 도 6을 참조하여 설명한다.Such a method and system according to the present invention will be described with reference to FIGS.

도 1은 본 발명의 일 실시예에 따른 비휘발성 주기억장치에서 프로세스 에러 복구 방법에 대한 동작 흐름도를 나타낸 것이다.1 is a flowchart illustrating a process error recovery method in a nonvolatile main memory according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 프로세스 에러 복구 방법은 비휘발성 주기억 장치에서 실행되는 프로세스들 각각의 실행 과정을 히스토리 저장소에 저장한다(S110).Referring to FIG. 1, in the process error recovery method according to an embodiment of the present invention, the execution process of each of the processes executed in the nonvolatile main memory device is stored in the history storage (S110).

여기서, 단계 S110은 프로세스들 각각의 스택 변화 과정을 프로세스들 각각에 대응하는 히스토리 저장소에 저장할 수 있다.Here, step S110 may store a stack change process of each of the processes in a history store corresponding to each of the processes.

본 발명의 비휘발성 메모리가 주기억장치가 되는 환경은 다양한 컴퓨팅 시스템들에게 적용될 수 있다. 예를 들어, 스마트폰, 태블릿, 랩탑, PC등 CPU 연산을 통해 실행되는 수많은 환경에 적용될 수 있다. 물론, 본 발명에서 제안한 환경은 비휘발성 메모리가 충분한 성능 향상을 이루어 최소 DRAM에 근접하는 IOPS((Input/Output Operations Per Second)를 갖추고 저장공간 역시 SSD 정도의 사양을 이룰 때의 환경을 포함할 수 있다. 즉, 나 SSD에서 발생하는 IO 작업이 없기 때문에 향상된 비휘발성 메모리에서 실행되는 환경은 빠른 속도로 실행되고 시스템의 불필요한 오버헤드가 줄어든 환경이라 할 수 있다.The environment in which the nonvolatile memory of the present invention becomes a main memory device can be applied to various computing systems. For example, it can be applied to numerous environments that are executed through CPU operations such as smartphones, tablets, laptops, and PCs. Of course, the environment proposed in the present invention may include an environment in which the nonvolatile memory has enough performance improvement to have an input / output operations per second (IOPS) approaching the minimum DRAM and the storage space also achieves an SSD specification. In other words, since there are no IO operations occurring in SSDs, the environment running on enhanced nonvolatile memory runs faster and reduces unnecessary overhead of the system.

이러한 환에서 처음 부팅이 시작된면 가장 먼저 사용된 init 프로세스부터 히스토리 로깅작업의 대상이 된다. 비휘발성 메모리 환경에서 스택의 운용법은 2가지로 나뉠 수 있는데, 1) 비휘발성 메모리의 한 공간을 모든 프로세스들이 공유해서 사용하는 방법과 2) 각 프로세스마다 스택 공간을 따로 운영하는 경우로 나뉠 수 있다. 즉, 본 발명에서의 히스토리 저장소는 도 2a에 도시된 바와 같이 비휘발성 주기억 장치의 미리 설정된 공간을 공유하여 저장될 수도 있고, 도 2b에 도시된 바와 같이 프로세스들 각각의 공간 내에 저장될 수도 있다.If this is the first boot in this environment, the first init process used will be the target of history logging. There are two ways to operate a stack in a non-volatile memory environment: 1) how all processes share one space in non-volatile memory, and 2) separate stack space for each process. . That is, the history store in the present invention may be stored by sharing a predetermined space of the nonvolatile main memory device as shown in FIG. 2A, or may be stored in each space of the processes as shown in FIG. 2B.

예를 들어, 히스토리 저장소에 대하여 공유 스택을 사용하는 경우 도 3에 도시된 바와 같이 각 스택의 자료에는 프로세스를 식별할 수 있는 자료형이 추가된 상태로 저장된다. 스택에서 POP이 일어나 메모리에서 지워지게 된다면 다시 그 데이터를 불러올 방법이 없어지기 때문에 메모리에서만 데이터를 저장하는 시스템에서 삭제연산은 항상 조심해야한다. 따라서, POP이 발생할 경우 그 당시 스택의 상태를 히스토리 저장소에 새로 저장하게 된다. 이런 공유 스택 영역은 히스토리 리스트와 같이 시퀀셜(sequential) 함을 알 수 있는 저장방식이라면 모두 저장방식으로 사용될 수 있다. For example, when a shared stack is used for the history storage, as shown in FIG. 3, the data of each stack is stored with a data type for identifying a process. When POPs are removed from the stack and deleted from memory, there is no way to retrieve the data again, so you should always be careful with delete operations on systems that only store data in memory. Therefore, when a POP occurs, the state of the stack at that time is newly stored in the history store. This shared stack area can be used as a storage method if the storage method is known to be sequential, such as a history list.

이 때, 히스토리에 적히는 데이터의 경우 데이터가 속하는 프로세스에 대한 정보가 존재해야 어떤 프로세스에 추가된 스택인지 알 수 있기 때문에 데이터에 추가로 PID(process ID)와 같은 프로세스 별로 식별가능한 정보를 추가하는 것이 바람직하다.At this time, in case of data written in the history, it is necessary to have information about the process to which the data belongs so that it is possible to know which stack is added to the process. It is preferable.

반면, 히스토리 저장소가 프로세스들 각각의 공간 내에 저장되는 경우 도 4에 도시된 바와 같이 프로세스 각각의 히스토리는 각 프로세스별로 하나씩 저장된다.On the other hand, when the history store is stored in the space of each process, as shown in FIG. 4, the history of each process is stored one by one.

여기서, 저장되는 방식은 공용스택을 사용할 때와 같지만 여러개의 히스토리가 동시에 운영될 수 있다. 물론, 히스토리 저장소에 저장되는 스택 변화 값은 시퀀셜(sequential) 함을 알 수 있는 저장방식을 이용하여 저장될 수 있으며, 스퀀셜 함을 알 수 있는 모든 저장방식이 사용될 수 있다.Here, the storage method is the same as when using a common stack, but several histories may be operated at the same time. Of course, the stack change value stored in the history storage may be stored using a storage method known as sequential, and all storage methods known as sequential may be used.

다시 도 1을 참조하면, 단계 S110에 의해 프로세스들 각각의 실행 과정에 의해 스택 변화 과정이 프로세스들 각각에 대응하는 히스토리 저장소에 저장되는 상태에서, 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하는 경우 운영체제에서 발생된 에러를 검출하고, 이렇게 검출된 에러에 대한 에러 메시지 또는 에러 정보를 운영체제로부터 수신한다(S120).Referring back to FIG. 1, when an error occurs in at least one of the processes with the stack change process being stored in the history store corresponding to each of the processes by the execution process of each process by step S110. An error generated by the operating system is detected, and an error message or error information on the detected error is received from the operating system (S120).

여기서, 운영체제는 실행 중인 프로세스에서 어떤 에러가 발생하였는지 알 수 있으며, 이에 대한 부분은 이 기술 분야에 종사하는 당업자에게 있어서 자명하기에 그 설명은 생략한다.Here, the operating system may know what error occurred in the running process, and the description thereof will be omitted since it is obvious to those skilled in the art.

단계 S120에 의해 운영체제로부터 적어도 하나의 프로세서에서 발생된 에러 정보가 수신되면, 수신된 에러 정보에 대응하는 적어도 하나의 프로세스에서 발생한 에러를 히스토리 저장소에 저장된 데이터를 이용하여 복구한다(S130).When error information generated in at least one processor is received from the operating system in operation S120, an error generated in at least one process corresponding to the received error information is recovered using data stored in the history storage (S130).

여기서, 단계 S130은 히스토리 저장소에 저장된 데이터를 이용하여 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 적어도 하나의 프로세스에서 발생한 에러를 복구할 수 있다.Here, step S130 may recover an error occurring in at least one process by restoring to a value before the time at which the error occurred in at least one process using data stored in the history store.

나아가, 단계 S130은 프로세스의 에러가 발생하고, 이렇게 발생된 에러가 다른 프로세스의 함수에 영향을 주는 경우가 있을 수 있기 때문에 프로세스 간의 연관 관계를 분석하거나 프로세스 간의 연관 관계가 미리 저장된 정보를 바탕으로, 에러가 발생된 프로세스 뿐만 아니라 발생된 에러에 의해 연관 관계가 있는 다른 프로세스에서 발생되는 에러 또한 함께 복구할 수도 있다.Furthermore, in step S130, an error of a process occurs, and the error may be affected by a function of another process, so that the correlation between processes may be analyzed or based on information previously stored in the association between processes. In addition to the process in which the error occurred, errors occurring in other processes that are related by the generated error can also be recovered.

예를 들어, 단계 S130은 도 5에 도시된 바와 같이 에러가 발생한 적어도 하나의 프로세스와 나머지 프로세스 간의 연관 관계를 분석한다(S510).For example, step S130 analyzes an association relationship between at least one process in which an error occurs and the remaining processes as shown in FIG. 5 (S510).

여기서, 단계 S510은 프로세스들 각각의 함수들 간의 연관 관계에 대한 정보를 미리 저장할 수도 있고, 프로세스 실행 과정에 의해 변화되는 값과 이렇게 변화되는 값에 의해 다른 프로세스의 함수에 대한 결과 값이 변화하는 등의 정보를 분석에 의해 알 수 있다. 물론, 프로세스들 각각에 대한 연관 관계 분석은 상술한 내용 뿐만 아니라 함수 관계를 분석할 수 있는 모든 방법을 적용할 수 있다.Here, the step S510 may store in advance information on the relationship between the functions of each of the processes, the value that is changed by the process execution process and the resulting value for the function of another process is changed by the value so changed The information can be known by analysis. Of course, the association analysis for each of the processes may apply not only the above description but also all the methods for analyzing the functional relationships.

단계 S510에 의해 에러가 발생한 프로세스와 연관 관계가 있는 다른 프로세스가 분석되면, 에러를 복구하는 과정에서 에러가 발생한 프로세스의 에러 뿐만 아니라 이와 연관된 다른 프로세스의 에러 또한 복구함으로써, 비휘발성 메모리의 프로세스에서 발생되는 에러를 안정적으로 복구할 수 있다.If another process related to the error-producing process is analyzed in step S510, the error recovery process recovers not only an error of the error-producing process but also an error of another process associated therewith, thereby causing a process in the nonvolatile memory. It is possible to reliably recover the errors that occur.

또한, 본 발명에 따른 방법은 비록 도 1에 도시하진 않았지만, 프로세스에서 발생된 에러가 히스토리 저장소에 저장된 이전 값으로의 복구에 의해 해결되지 않는 경우 운영체제를 이용한 복구가 실행되거나 사용자가 커스터마이징(customizing)한 에러복구 작업이 실행됨으로써, 에러가 복구될 수도 있다. In addition, although the method according to the present invention is not shown in FIG. 1, if an error occurred in the process is not solved by the recovery to the previous value stored in the history store, the recovery using the operating system is executed or the user is customized. By performing an error recovery operation, the error may be recovered.

상술한 바와 같이, 본 발명에 따른 방법은 주기억장치로 비휘발성 메모리가 사용된 환경에서 시스템 소프트웨어 문제가 발생하였을 경우 프로세스 스택정보를 활용하여 시스템 소프트웨어 에러를 복구함으로써, 비휘발성 주기억장치에서 에러 발생 시 에러를 복구할 수 있다.As described above, the method according to the present invention recovers a system software error by using process stack information when a system software problem occurs in an environment in which a nonvolatile memory is used as a main memory. You can recover from the error.

또한, 본 발명에 따른 방법은 프로세스 실행과정을 로깅해줄 수 있는 히스토리(history) 구조체를 사용함으로써, 프로세스를 이전 상태로 안전하게 복구해줄 수 있을 뿐만 아니라 프로세스 간의 연관 관계 정보를 이용하여 프로세스 에러가 발생하는 경우 해당 프로세스의 에러 뿐만 아니라 이로 인해 발생되는 다른 프로세스의 에러를 안정하게 복구할 수 있다.In addition, the method according to the present invention uses a history structure that can log the process execution process, it is possible not only to safely recover the process to the previous state, but also to generate a process error using the association information between processes. In this case, it is possible to stably recover not only an error of the corresponding process but also an error of another process caused by this.

도 6은 본 발명의 일 실시예에 따른 비휘발성 주기억장치에서 프로세스 에러 복구 시스템에 대한 구성을 나타낸 것으로, 도 1 내지 도 5의 방법을 수행하는 시스템에 대한 구성을 나타낸 것이다.6 illustrates a configuration of a process error recovery system in a nonvolatile main memory according to an embodiment of the present invention, and illustrates a configuration of a system that performs the method of FIGS. 1 to 5.

도 6을 참조하면, 본 발명에 따른 시스템(600)은 저장부(610), 수신부(620) 및 복구부(630)를 포함한다.Referring to FIG. 6, the system 600 according to the present invention includes a storage unit 610, a receiver 620, and a recovery unit 630.

저장부(610)는 비휘발성 주기억 장치에서 실행되는 프로세스들 각각의 실행 과정을 히스토리 저장소에 저장한다.The storage unit 610 stores the execution process of each process executed in the nonvolatile main memory in the history storage.

여기서, 저장부(610)는 프로세스들 각각의 스택 변화 과정을 프로세스들 각각에 대응하는 히스토리 저장소에 저장할 수 있으며, 비휘발성 메모리의 한 공간을 모든 프로세스들이 공유해서 사용하는 방법을 이용하여 프로세스들 각각에 대응하는 히스토리를 저장할 수도 있고 프로세스들 각각의 스택 공간에 프로세스들 각각에 대응하는 히스토리를 저장할 수도 있다.Here, the storage unit 610 may store a stack change process of each of the processes in a history store corresponding to each of the processes, and each of the processes by using a method in which all processes share and use a space of the nonvolatile memory. A history corresponding to each of the processes may be stored in a stack space of each of the processes.

수신부(620)는 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하여 운영체제에서 발생된 에러를 검출하는 경우 검출된 에러에 대한 에러 메시지 또는 에러 정보를 운영체제로부터 수신한다.When an error occurs in at least one of the processes and the error is detected by the operating system, the receiver 620 receives an error message or error information on the detected error from the operating system.

복구부(630)는 운영체제로부터 적어도 하나의 프로세서에서 발생된 에러 정보가 수신되면, 수신된 에러 정보에 대응하는 적어도 하나의 프로세스에서 발생한 에러를 히스토리 저장소에 저장된 데이터를 이용하여 복구한다.When the error information generated in at least one processor is received from the operating system, the recovery unit 630 recovers an error generated in at least one process corresponding to the received error information by using data stored in the history store.

여기서, 복구부(630)는 히스토리 저장소에 저장된 데이터를 이용하여 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 적어도 하나의 프로세스에서 발생한 에러를 복구할 수 있다.Here, the recovery unit 630 may recover an error occurring in at least one process by restoring to a value before a time point of occurrence of an error in at least one process using data stored in the history store.

나아가, 복구부(630)는 프로세스의 에러가 발생하고, 이렇게 발생된 에러가 다른 프로세스의 함수에 영향을 주는 경우가 있을 수 있기 때문에 프로세스 간의 연관 관계를 분석하거나 프로세스 간의 연관 관계가 미리 저장된 정보를 바탕으로, 에러가 발생된 프로세스 뿐만 아니라 발생된 에러에 의해 연관 관계가 있는 다른 프로세스에서 발생되는 에러 또한 함께 복구할 수도 있다.In addition, the recovery unit 630 may cause an error in a process, and the generated error may affect a function of another process. Based on this, not only the process in which the error occurred, but also errors occurring in other processes that are related by the generated error, can be recovered together.

비록, 도 6의 시스템에서 그 설명이 생략되었더라도 본 발명에 따른 시스템은 도 1 내지 도 5의 방법에서 설명한 모든 내용을 포함할 수 있다는 것은 이 기술 분야에 종사하는 당업자에게 있어서 자명하다.Although the description is omitted in the system of FIG. 6, it will be apparent to those skilled in the art that the system according to the present invention may include all the contents described in the method of FIGS. 1 to 5.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented with hardware components, software components, and / or combinations of hardware components and software components. For example, the systems, devices, and components described in the embodiments may include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable arrays (FPAs). ), A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiments may be embodied in the form of program instructions that may be executed by various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, 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 embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.

Claims (10)

비휘발성 주기억장치에서 프로세스 에러 복구 방법에 있어서,
상기 비휘발성 주기억장치에서 동작 중인 프로세스들 각각의 실행 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 단계;
상기 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하는 경우 운영체제로부터 에러 정보를 수신하는 단계; 및
상기 수신된 에러 정보에 대응하는 상기 적어도 하나의 프로세스에서 발생한 에러를 상기 히스토리 저장소를 이용하여 복구하는 단계
를 포함하는 프로세스 에러 복구 방법.
A method for recovering a process error in a nonvolatile main memory,
Storing a process of executing each of the processes running in the nonvolatile main memory in a history store corresponding to each of the processes;
Receiving error information from an operating system when an error occurs in at least one of the processes; And
Recovering an error occurring in the at least one process corresponding to the received error information using the history store;
Process error recovery method comprising a.
제1항에 있어서,
상기 히스토리 저장소를 이용하여 복구하는 단계는
상기 에러가 발생한 적어도 하나의 프로세스와 나머지 프로세스 간의 연관 관계를 분석하고, 상기 분석된 연관 관계와 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 발생한 에러와 상기 적어도 하나의 프로세스와 연관된 다른 프로세스의 에러를 복구하는 것을 특징으로 하는 프로세스 에러 복구 방법.
The method of claim 1,
Restoring using the history store
Analyze an association between the at least one process in which the error occurred and the rest of the processes, and use the analyzed association and the history repository to generate errors in the at least one process and errors in other processes associated with the at least one process. Process error recovery method characterized in that for recovering.
제1항에 있어서,
상기 히스토리 저장소를 이용하여 복구하는 단계는
상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 상기 적어도 하나의 프로세스에서 발생한 에러를 복구하는 것을 특징으로 하는 프로세스 에러 복구 방법.
The method of claim 1,
Restoring using the history store
Recovering an error occurring in the at least one process by restoring to a value before an error occurs in the at least one process using the history storage.
제1항에 있어서,
상기 히스토리 저장소에 저장하는 단계는
상기 프로세스들 각각의 스택 변화 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 것을 특징으로 하는 프로세스 에러 복구 방법.
The method of claim 1,
The storing in the history repository is
Storing a stack change process of each of the processes in a history store corresponding to each of the processes.
제1항에 있어서,
상기 히스토리 저장소에 저장하는 단계는
상기 프로세스들 각각에 대응하는 히스토리 저장소를 상기 비휘발성 주기억 장치의 미리 설정된 공간에 공유하여 저장하거나 상기 프로세스들 각각의 공간 내에 저장하는 것을 특징으로 하는 프로세스 에러 복구 방법.
The method of claim 1,
The storing in the history repository is
And storing the history storage corresponding to each of the processes in a predetermined space of the nonvolatile main memory device or in the space of each of the processes.
비휘발성 주기억장치에서 프로세스 에러 복구 시스템에 있어서,
상기 비휘발성 주기억장치에서 동작 중인 프로세스들 각각의 실행 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 저장부;
상기 프로세스들 중 적어도 하나의 프로세스에서 에러가 발생하는 경우 운영체제로부터 에러 정보를 수신하는 수신부; 및
상기 수신된 에러 정보에 대응하는 상기 적어도 하나의 프로세스에서 발생한 에러를 상기 히스토리 저장소를 이용하여 복구하는 복구부
를 포함하는 프로세스 에러 복구 시스템.
In a process error recovery system in a nonvolatile main memory,
A storage unit to store an execution process of each of the processes operating in the nonvolatile main memory in a history storage corresponding to each of the processes;
A receiver configured to receive error information from an operating system when an error occurs in at least one of the processes; And
A recovery unit for recovering an error occurring in the at least one process corresponding to the received error information by using the history storage
Process error recovery system comprising a.
제6항에 있어서,
상기 복구부는
상기 에러가 발생한 적어도 하나의 프로세스와 나머지 프로세스 간의 연관 관계를 분석하고, 상기 분석된 연관 관계와 상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 발생한 에러와 상기 적어도 하나의 프로세스와 연관된 다른 프로세스의 에러를 복구하는 것을 특징으로 하는 프로세스 에러 복구 시스템.
The method of claim 6,
The recovery unit
Analyze an association between the at least one process in which the error occurred and the rest of the processes, and use the analyzed association and the history repository to generate errors in the at least one process and errors in other processes associated with the at least one process. Process error recovery system, characterized in that for recovering.
제6항에 있어서,
상기 복구부는
상기 히스토리 저장소를 이용하여 상기 적어도 하나의 프로세스에서 에러가 발생한 시점 이전의 값으로 복구함으로써, 상기 적어도 하나의 프로세스에서 발생한 에러를 복구하는 것을 특징으로 하는 프로세스 에러 복구 시스템.
The method of claim 6,
The recovery unit
And recovering the error occurring in the at least one process by restoring to the value before the time at which the error occurred in the at least one process using the history storage.
제6항에 있어서,
상기 저장부는
상기 프로세스들 각각의 스택 변화 과정을 상기 프로세스들 각각에 대응하는 히스토리 저장소에 저장하는 것을 특징으로 하는 프로세스 에러 복구 시스템.
The method of claim 6,
The storage unit
Storing a stack change process of each of the processes in a history store corresponding to each of the processes.
제6항에 있어서,
상기 저장부는
상기 프로세스들 각각에 대응하는 히스토리 저장소를 상기 비휘발성 주기억 장치의 미리 설정된 공간에 공유하여 저장하거나 상기 프로세스들 각각의 공간 내에 저장하는 것을 특징으로 하는 프로세스 에러 복구 시스템.
The method of claim 6,
The storage unit
And storing the history storage corresponding to each of the processes in a predetermined space of the nonvolatile main memory device or in the space of each of the processes.
KR1020180030081A 2018-03-15 2018-03-15 Method for recovering error in non-volatile main memory unit and system therefor KR102052816B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180030081A KR102052816B1 (en) 2018-03-15 2018-03-15 Method for recovering error in non-volatile main memory unit and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180030081A KR102052816B1 (en) 2018-03-15 2018-03-15 Method for recovering error in non-volatile main memory unit and system therefor

Publications (2)

Publication Number Publication Date
KR20190108712A true KR20190108712A (en) 2019-09-25
KR102052816B1 KR102052816B1 (en) 2019-12-05

Family

ID=68068444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180030081A KR102052816B1 (en) 2018-03-15 2018-03-15 Method for recovering error in non-volatile main memory unit and system therefor

Country Status (1)

Country Link
KR (1) KR102052816B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063519A (en) * 2019-11-22 2021-06-02 현대오트론 주식회사 Diagnosing method for cause of stack fault and apparatus thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070063962A (en) * 2005-12-16 2007-06-20 주식회사 팬택앤큐리텔 User data restoration apparatus and method for error occurrence in the mobile communication terminal
KR20070075667A (en) * 2006-01-14 2007-07-24 최의인 History storage server and method for web pages management in large scale web
KR20110110106A (en) * 2008-12-09 2011-10-06 램버스 인코포레이티드 Non-volatile memory device for concurrent and pipelined memory operations
KR20130071137A (en) * 2011-12-20 2013-06-28 삼성전자주식회사 Image forming apparatus and method for performing error notification and error recovery function thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070063962A (en) * 2005-12-16 2007-06-20 주식회사 팬택앤큐리텔 User data restoration apparatus and method for error occurrence in the mobile communication terminal
KR20070075667A (en) * 2006-01-14 2007-07-24 최의인 History storage server and method for web pages management in large scale web
KR20110110106A (en) * 2008-12-09 2011-10-06 램버스 인코포레이티드 Non-volatile memory device for concurrent and pipelined memory operations
KR20130071137A (en) * 2011-12-20 2013-06-28 삼성전자주식회사 Image forming apparatus and method for performing error notification and error recovery function thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063519A (en) * 2019-11-22 2021-06-02 현대오트론 주식회사 Diagnosing method for cause of stack fault and apparatus thereof

Also Published As

Publication number Publication date
KR102052816B1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US7774636B2 (en) Method and system for kernel panic recovery
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US9384094B2 (en) Method and system for instant restore of system volume from a backup image
US9384095B2 (en) Recovering from a defective boot image
US9805068B1 (en) Systems and methods for facilitating features of system recovery environments during restore operations
US11221927B2 (en) Method for the implementation of a high performance, high resiliency and high availability dual controller storage system
US9141397B2 (en) Live initialization of a boot device
US10496492B2 (en) Virtual machine backup with efficient checkpoint handling based on a consistent state of the virtual machine of history data and a backup type of a current consistent state of the virtual machine
US9703651B2 (en) Providing availability of an agent virtual computing instance during a storage failure
JP2021174495A (en) System and method for selectively restoring computer system into operational state
US6988194B2 (en) System and method for preserving boot order in an information handling system when a boot device is replaced by a matching device
US10514972B2 (en) Embedding forensic and triage data in memory dumps
US9852028B2 (en) Managing a computing system crash
KR102052816B1 (en) Method for recovering error in non-volatile main memory unit and system therefor
US10761892B2 (en) Method and electronic device for executing data reading/writing in volume migration
US11226875B2 (en) System halt event recovery
US9218253B2 (en) Embedded restoration memory
US8984336B1 (en) Systems and methods for performing first failure data captures
US20160004607A1 (en) Information processing apparatus and information processing method
KR101785540B1 (en) Emulation method and apparatus for processing request for non-deterministic hardware interrupt
JP6287055B2 (en) Information processing apparatus, information collection method, and information collection program
US20230350755A1 (en) Coordinated operating system rollback
KR102008953B1 (en) Apparatus and method for monitoring memory contamination
CN109564533B (en) Device and method for supporting execution of guide process in instant recovery process
US20170228295A1 (en) Computer-readable recording medium, restoration process control method, and information processing device

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