KR101969799B1 - Electronic device and controlling method thereof - Google Patents
Electronic device and controlling method thereof Download PDFInfo
- Publication number
- KR101969799B1 KR101969799B1 KR1020170048313A KR20170048313A KR101969799B1 KR 101969799 B1 KR101969799 B1 KR 101969799B1 KR 1020170048313 A KR1020170048313 A KR 1020170048313A KR 20170048313 A KR20170048313 A KR 20170048313A KR 101969799 B1 KR101969799 B1 KR 101969799B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- data
- main memory
- checkpointing
- area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
전자 장치 및 제어 방법이 개시된다. 본 개시는 메인 메모리 영역 및 파일 시스템 영역을 포함하는 뉴메모리 및 연산을 수행하고, 기 설정된 조건에 따라 메인 메모리 영역 및 파일 시스템 영역에 대해 체크 포인팅을 수행하는 프로세서를 포함하며, 메인 메모리 영역은 데이터가 변경된 페이지 정보를 라이팅(writing)하는 체크 포인트 테이블을 포함하고, 프로세서는 메인 메모리 영역에 대해 체크 포인팅을 수행할 때, 체크 포인트 테이블을 초기화하고 메인 메모리 영역의 페이지의 속성(attribute)을 읽기 전용(read-only)으로 설정하는 전자 장치를 제공한다.An electronic device and a control method are disclosed. The present disclosure includes a new memory including a main memory area and a file system area and a processor for performing an operation and performing checkpointing on a main memory area and a file system area according to predetermined conditions, The processor includes a checkpoint table for writing the changed page information. When the processor performs checkpointing on the main memory area, the processor initializes the checkpoint table and reads the attribute of the page in the main memory area as read-only (read-only).
Description
본 개시는 전자 장치 및 제어 방법에 관한 것으로, 더욱 상세하게는 체크 포인팅을 이용하여 데이터를 관리하는 전자 장치 및 제어 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic apparatus and a control method, and more particularly, to an electronic apparatus and a control method for managing data using check pointing.
체크포인팅 기법은 예상치 못한 오류 이벤트가 발생하는 경우, 시스템이 반환할 수 있는 일관된 상태를 스토리지에 저장하기 위해 일반적으로 사용되는 메커니즘이다. 체크포인팅 기법은 시스템의 상태를 파일로 변환하고, 그 파일은 스토리지 장치에 저장된다.Checkpointing is a commonly used mechanism for storing consistent state that can be returned by the system in the event of an unexpected error event. The checkpointing technique converts the state of the system to a file, which is stored on the storage device.
도 1을 참조하면, 종래의 체크 포인팅을 이용하여 데이터를 관리하는 방법이 도시되어 있다. 체크 포인트는 시스템의 상태를 파일로 변환하고, 변환된 파일은 저장 장치에 저장된다. 만일, 연산 중에 에러가 발생한 경우, 전자 장치는 가장 최근의 체크 포인팅에서 시스템을 복구하고 다시 시작해야 하므로 w만큼 시간이 손실된다. 또한, 체크 포인트에서 시스템을 복원하는데 필요한 시간인 r만큼 시간이 필요하다. 따라서, 종래의 전자 장치는 오류 발생 후 복구시까지 w+r만큼의 시간이 소요되었다. 일반적으로 HPC(High Performance Computing) 시스템의 경우 연속 연산 시간(또는, checkpoint interval)은 3시간 내지 4 시간 정도이고, 체크 포인팅 시간은 30분 내지 1시간 정도이다. 따라서, 종래의 전자 장치는 오류가 발생되는 경우, 많은 시간이 소요되는 단점이 있다.Referring to FIG. 1, a method of managing data using conventional checkpointing is illustrated. The checkpoint converts the system state to a file, and the converted file is stored in the storage device. If an error occurs during an operation, the electronic device loses time w because it must recover and restart the system at the most recent checkpointing. Also, it takes time r, which is the time required to restore the system at the checkpoint. Therefore, the conventional electronic device took time as long as w + r until recovery after occurrence of error. Generally, in a High Performance Computing (HPC) system, the continuous operation time (or checkpoint interval) is about 3 hours to 4 hours, and the check pointing time is about 30 minutes to 1 hour. Therefore, the conventional electronic device has a disadvantage in that it takes much time when an error occurs.
또한, 종래의 전자 장치는 세그먼트 정보, 프로세서의 휘발성 정보 및 장치가 모두 동기식으로 함께 저장되어야 하므로 데이터의 일관성 및 지속성을 보장하기 위해 복잡한 소프트웨어 관리 구조를 필요로 한다. In addition, conventional electronic devices require a complicated software management structure to ensure consistency and persistence of data because segment information, processor volatility information, and devices must all be stored synchronously.
본 개시는 상술한 문제점을 해결하기 위한 것으로 본 개시의 목적은 시스템 구동의 신뢰성을 확보하기 위해 효율적인 데이터의 일관성 및 지속성을 제공할 수 있는 전자 장치 및 제어 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present disclosure is directed to solve the above problems and an object of the present disclosure is to provide an electronic device and a control method that can provide efficient data consistency and persistence in order to secure reliability of system operation.
이상과 같은 목적을 달성하기 위해 본 개시의 일 실시 예에 따르면, 메인 메모리 영역 및 파일 시스템 영역을 포함하는 뉴메모리 및 연산을 수행하고, 기 설정된 조건에 따라 상기 메인 메모리 영역 및 상기 파일 시스템 영역에 대해 체크 포인팅을 수행하는 프로세서를 포함하며, 상기 메인 메모리 영역은 데이터가 변경된 페이지 정보를 라이팅(writing)하는 체크 포인트 테이블을 포함하고, 상기 프로세서는 메인 메모리 영역에 대해 체크 포인팅을 수행할 때, 상기 체크 포인트 테이블을 초기화하고 상기 메인 메모리 영역의 페이지의 속성(attribute)을 읽기 전용(read-only)으로 설정하는 전자 장치를 제공한다.According to an embodiment of the present disclosure, there is provided a method for performing a new memory and operation including a main memory area and a file system area, and performing a new operation on the main memory area and the file system area Wherein the main memory area includes a checkpoint table for writing page information whose data has been changed, and when the processor performs checkpointing on a main memory area, And initializes a checkpoint table and sets an attribute of a page of the main memory area as read-only.
그리고, 상기 프로세서는 상기 연산을 수행할 때, 제1 페이지의 데이터 업데이트가 요청되는 경우 상기 제1 페이지의 정보를 상기 체크 포인트 테이블에 라이팅할 수 있다.The processor may write the information of the first page to the checkpoint table when a data update of the first page is requested when the operation is performed.
그리고, 상기 프로세서는 상기 제1 페이지를 복사한 제2 페이지를 생성하고, 상기 제2 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하며, 상기 속성을 라이트(write)로 변경하여 상기 제1 페이지의 데이터를 업데이트할 수 있다.The processor generates a second page in which the first page is copied, writes the information of the second page in the checkpoint table, changes the attribute to write, Can be updated.
또한, 상기 프로세서는 상기 연산을 수행하거나 상기 메인 메모리 영역에 대해 체크 포인팅을 수행할 때 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 상기 제1 페이지를 롤백(roll back)할 수 있다.The processor may also roll back the first page based on the information written to the checkpoint table if an error occurs when performing the operation or performing checkpointing on the main memory area .
한편, 상기 파일 시스템 영역은 버퍼 및 파일 저장부를 포함하고, 상기 파일 저장부는 기 저장된 데이터 블록을 포함하며, 상기 프로세서는 상기 데이터 블록이 업데이트되는 경우, 상기 업데이트된 데이터 블록을 상기 버퍼에 저장할 수 있다.Meanwhile, the file system area includes a buffer and a file storage unit, the file storage unit includes a previously stored data block, and the processor can store the updated data block in the buffer when the data block is updated .
그리고, 상기 프로세서는 상기 파일 시스템 영역에 대해 체크 포인팅을 수행할 때, 상기 업데이트된 데이터 블록을 상기 파일 저장부에 라이팅할 수 있다.The processor may write the updated data block to the file storage when performing checkpointing on the file system area.
또한, 상기 프로세서는 상기 메인 메모리 영역에 대한 체크 포인팅을 수행한 후 상기 파일 시스템 영역에 대한 체크 포인팅을 수행할 수 있다.In addition, the processor may perform checkpointing on the file system area after performing checkpointing on the main memory area.
한편, 상기 기 설정된 조건은 기 설정된 주기, 상기 데이터의 변경이 기 설정된 횟수를 만족하는 조건 중 적어도 하나일 수 있다.The predetermined condition may be at least one of a predetermined period and a condition that the predetermined number of changes of the data is satisfied.
이상과 같은 목적을 달성하기 위해 본 개시의 일 실시 예에 따르면, 체크 포인팅을 수행하는 단계 및 연산을 수행하는 단계를 포함하고, 상기 체크 포인팅을 수행하는 단계는 데이터가 변경된 페이지 정보를 라이팅하는 체크 포인트 테이블을 포함하는 뉴메모리의 메인 메모리 영역에 대해 기 설정된 조건에 따라 체크 포인팅을 수행하고, 상기 뉴메모리의 파일 시스템 영역에 대해 체크 포인팅을 수행하며, 상기 메인 메모리 영역에 대해 체크 포인팅을 수행할 때, 상기 체크 포인트 테이블을 초기화하고 상기 메인 메모리 영역의 페이지의 속성(attribute)을 읽기 전용(read-only)으로 설정하는 전자 장치의 제어 방법을 제공한다.According to an embodiment of the present disclosure, there is provided a method for performing checkpointing, the method comprising: performing checkpointing and performing an operation, Check pointing is performed according to a predetermined condition for a main memory area of a new memory including a point table, check-pointing is performed on a file system area of the new memory, check-pointing is performed on the main memory area , And initializing the checkpoint table and setting an attribute of a page of the main memory area to be read-only.
그리고, 상기 연산을 수행하는 단계는 제1 페이지의 데이터 업데이트가 요청되는 경우 상기 제1 페이지의 정보를 상기 체크 포인트 테이블에 라이팅할 수 있다.And performing the operation may write the information of the first page to the checkpoint table when a data update of the first page is requested.
또한, 상기 연산을 수행하는 단계는 상기 제1 페이지를 복사한 제2 페이지를 생성하고, 상기 제2 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하며, 상기 속성을 라이트(write)로 변경하여 상기 제1 페이지의 데이터를 업데이트할 수 있다.In addition, the step of performing the operation may include generating a second page in which the first page is copied, writing information of the second page in the checkpoint table, changing the attribute to write, One page of data can be updated.
또한, 상기 연산을 수행하는 단계는 상기 연산을 수행하거나 상기 메인 메모리 영역에 대해 체크 포인팅을 수행할 때 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 상기 제1 페이지를 롤백(roll back)할 수 있다.In addition, the step of performing the operation may include, when an error occurs when performing the operation or performing checkpointing on the main memory area, performing a rollback of the first page based on the information written in the checkpoint table roll back.
한편, 상기 체크 포인팅을 수행하는 단계는 버퍼 및 파일 저장부를 포함하는 상기 파일 시스템 영역의 상기 파일 저장부에 기 저장된 데이터 블록이 업데이트되는 경우, 상기 업데이트된 데이터 블록을 상기 버퍼에 저장할 수 있다.The step of performing checkpointing may store the updated data block in the buffer when the data block previously stored in the file storage unit of the file system area including the buffer and the file storage unit is updated.
또한, 상기 체크 포인팅을 수행하는 단계는 상기 파일 시스템 영역에 대해 체크 포인팅을 수행할 때, 상기 업데이트된 데이터 블록을 상기 파일 저장부에 라이팅할 수 있다.In addition, the checkpointing may write the updated data block to the file storage when performing checkpointing on the file system area.
또한, 상기 체크 포인팅을 수행하는 단계는 상기 메인 메모리 영역에 대한 체크 포인팅을 수행한 후 상기 파일 시스템 영역에 대한 체크 포인팅을 수행할 수 있다.The checking pointing may perform checkpointing on the file system area after performing checkpointing on the main memory area.
이상 설명한 바와 같이, 본 개시의 다양한 실시 예에 따르면, 전자 장치 및 제어 방법은 데이터의 데이터 저장의 효율을 높이고 데이터의 일관성 및 지속성을 보장할 수 있다.As described above, according to various embodiments of the present disclosure, electronic devices and control methods can increase the efficiency of data storage of data and ensure data consistency and persistence.
도 1은 종래의 연산 및 체크 포인팅을 수행하는 과정을 설명하는 도면이다.
도 2는 본 개시의 일 실시 예에 따른 연산 및 체크 포인팅을 수행하는 과정을 설명하는 도면이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 블록도이다.
도 4는 본 개시의 일 실시 예에 따른 프로세서의 세부 블록도이다.
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 아키텍처를 설명하는 도면이다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치가 프로세스에 관한 정보를 저장하는 과정을 설명하는 도면이다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치가 프로세스에 관한 정보를 관리하는 구조를 설명하는 도면이다.
도 8은 본 개시의 다른 실시 예에 따른 전자 장치가 데이터 및 메타 데이터를 저장하는 과정을 설명하는 도면이다.
도 9는 본 개시의 일 실시 예에 따른 연산 및 체크 포인팅을 수행하는 과정을 구체적으로 설명하는 도면이다.
도 10은 본 개시의 일 실시 예에 따른 전자 장치 제어 방법의 흐름도이다.
도 11은 본 개시의 일 실시 예에 따른 이벤트에 따라 특정 프로세스에 관한 정보를 저장하는 전자 장치의 동작을 설명하는 흐름도이다.
도 12는 본 개시의 일 실시 예에 따른 이벤트에 따라 특정 데이터 및 메타 데이터를 저장하는 전자 장치의 동작을 설명하는 흐름도이다.FIG. 1 is a diagram for explaining a process of performing conventional computation and checkpointing.
FIG. 2 is a diagram illustrating a process of performing computation and checkpointing according to an embodiment of the present disclosure.
3 is a block diagram of an electronic device according to one embodiment of the present disclosure;
4 is a detailed block diagram of a processor in accordance with one embodiment of the present disclosure;
5 is a diagram illustrating an architecture of an electronic device according to an embodiment of the present disclosure;
Figure 6 is a diagram illustrating a process by which an electronic device according to an embodiment of the present disclosure stores information about a process.
7 is a diagram illustrating a structure in which an electronic device according to an embodiment of the present disclosure manages information about a process.
8 is a diagram illustrating a process of storing data and metadata in an electronic device according to another embodiment of the present disclosure.
FIG. 9 is a diagram for explaining a process of performing computation and checkpointing according to an embodiment of the present disclosure.
10 is a flowchart of an electronic device control method according to an embodiment of the present disclosure.
11 is a flow diagram illustrating the operation of an electronic device that stores information regarding a particular process in accordance with an event in accordance with an embodiment of the present disclosure;
Figure 12 is a flow diagram illustrating the operation of an electronic device that stores specific data and metadata in accordance with an event in accordance with an embodiment of the present disclosure.
이하에서는 첨부된 도면을 참조하여 다양한 실시 예를 보다 상세하게 설명한다. 본 명세서에 기재된 실시 예는 다양하게 변형될 수 있다. 특정한 실시 예가 도면에서 묘사되고 상세한 설명에서 자세하게 설명될 수 있다. 그러나, 첨부된 도면에 개시된 특정한 실시 예는 다양한 실시 예를 쉽게 이해하도록 하기 위한 것일 뿐이다. 따라서, 첨부된 도면에 개시된 특정 실시 예에 의해 기술적 사상이 제한되는 것은 아니며, 발명의 사상 및 기술 범위에 포함되는 모든 균등물 또는 대체물을 포함하는 것으로 이해되어야 한다.Various embodiments will now be described in detail with reference to the accompanying drawings. The embodiments described herein can be variously modified. Specific embodiments are described in the drawings and may be described in detail in the detailed description. It should be understood, however, that the specific embodiments disclosed in the accompanying drawings are intended only to facilitate understanding of various embodiments. Accordingly, it is to be understood that the technical idea is not limited by the specific embodiments disclosed in the accompanying drawings, but includes all equivalents or alternatives falling within the spirit and scope of the invention.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이러한 구성요소들은 상술한 용어에 의해 한정되지는 않는다. 상술한 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinals, such as first, second, etc., may be used to describe various elements, but such elements are not limited to the above terms. The above terms are used only for the purpose of distinguishing one component from another.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.In this specification, the terms " comprises " or " having ", and the like, are intended to specify the presence of stated features, integers, steps, operations, elements, parts, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
한편, 본 명세서에서 사용되는 구성요소에 대한 "모듈" 또는 "부"는 적어도 하나의 기능 또는 동작을 수행한다. 그리고, "모듈" 또는 "부"는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 의해 기능 또는 동작을 수행할 수 있다. 또한, 특정 하드웨어에서 수행되어야 하거나 적어도 하나의 프로세서에서 수행되는 "모듈" 또는 "부"를 제외한 복수의 "모듈들" 또는 복수의 "부들"은 적어도 하나의 모듈로 통합될 수도 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.In the meantime, " module " or " part " for components used in the present specification performs at least one function or operation. Also, " module " or " part " may perform functions or operations by hardware, software, or a combination of hardware and software. Also, a plurality of " modules " or a plurality of " parts ", other than a " module " or " part ", to be performed in a specific hardware or performed in at least one processor may be integrated into at least one module. The singular expressions include plural expressions unless the context clearly dictates otherwise.
그 밖에도, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.In addition, in the description of the present invention, when it is judged that the detailed description of known functions or constructions related thereto may unnecessarily obscure the gist of the present invention, the detailed description thereof will be abbreviated or omitted.
도 2는 본 개시의 일 실시 예에 따른 연산 및 체크 포인팅을 수행하는 과정을 설명하는 도면이다.FIG. 2 is a diagram illustrating a process of performing computation and checkpointing according to an embodiment of the present disclosure.
도 2를 참조하면, 연산(computing)을 수행할 때 페이지 폴트(page fault)가 발생하면 파일 시스템 영역에 업데이트를 수행하는 전자 장치가 개시되어 있다. 본 개시는 비휘발성 메모리 중에서 뉴메모리를 사용한다. 뉴메모리(New Memory)는 비휘발성 특성을 가지고, 바이트 단위로 접근이 가능하며, 속도가 DRAM에 비해 크게 뒤쳐지지 않는 성능의 메모리를 의미한다. 예를 들어, 뉴메모리는 MRAM, FeRAM, RRAM, STT-MRAM, PRAM, 3D-XPoint 등을 포함할 수 있다. 뉴메모리는 종래의 주메모리와 스토리지의 역할을 수행할 수 있다. 따라서, 본 개시의 전자 장치는 주메모리와 스토리지를 별개로 사용하지 않아도 되는 장점이 있다. 또한, 주메모리와 스토리지를 하나의 뉴메모리로 사용하므로 전자 장치의 설계 공간적인 측면에서도 장점이 있다.Referring to FIG. 2, an electronic device for performing an update in a file system area when a page fault occurs when performing computing is disclosed. The present disclosure uses new memory among non-volatile memories. New memory is a non-volatile memory that can be accessed on a byte-by-byte basis. For example, the new memory may include MRAM, FeRAM, RRAM, STT-MRAM, PRAM, 3D-XPoint, and the like. New memory can serve as conventional main memory and storage. Therefore, the electronic apparatus of the present disclosure has an advantage of not using the main memory and the storage separately. In addition, since the main memory and the storage are used as one new memory, there is an advantage in terms of the design space of the electronic device.
뉴메모리는 메인 메모리 영역과 파일 시스템 영역을 포함할 수 있다. 메인 메모리 영역은 연산 과정에서 사용되는 종래의 주메모리 역할을 수행할 수 있고, 파일 시스템 영역은 최종 데이터가 저장되는 종래의 스토리지 역할을 수행할 수 있다. 전자 장치는 연산을 수행할 때, 메인 메모리 영역의 데이터만을 업데이트할 수 있다. 그리고, 전자 장치는 특정 이벤트가 발생하는 경우, 또는 주기적으로 메인 메모리 영역의 데이터를 파일 시스템 영역으로 이동시킬 수 있다. 예를 들어, 특정 이벤트는 페이지 폴트가 발생하는 경우이다. 페이지 폴트는 메인 메모리 영역의 페이지가 오버플로우되거나 일정한 조건에 따라 페이지 내용을 초기화해야 하는 경우를 의미할 수 있다. 본 개시의 전자 장치는 일정한 조건에 따라 메인 메모리 영역의 데이터를 파일 시스템 영역으로 이동시키기 때문에 체크 포인트 시간이 줄어들 수 있다. 또한, 메인 메모리 영역과 파일 시스템 영역이 하나의 뉴메모리 내에 존재하므로 메인 메모리 영역으로부터 파일 시스템 영역으로 데이터를 이동시키는 시간이 적게 소요될 수 있다. 일 실시 예로서, 본 개시의 전자 장치의 연속 연산 시간(또는, checkpoint interval)은 10초 내외이고, 데이터를 이동시키는 페이지 폴트 및 체크 포인팅 시간은 전자 장치의 전체 처리 시간에 대비할 때 충분히 무시할 수 있는 시간이다.The new memory may include a main memory area and a file system area. The main memory area can perform the conventional main memory function used in the calculation process, and the file system area can perform the conventional storage function in which the final data is stored. When performing an operation, the electronic device can update only the data in the main memory area. Then, the electronic device can move the data of the main memory area to the file system area periodically, when a specific event occurs. For example, a specific event is when a page fault occurs. A page fault may mean that a page in the main memory area overflows or needs to be initialized according to certain conditions. The electronic device of the present disclosure moves the data in the main memory area to the file system area under certain conditions, so the checkpoint time can be reduced. In addition, since the main memory area and the file system area exist in one new memory, it may take a little time to move data from the main memory area to the file system area. In one embodiment, the continuous computing time (or checkpoint interval) of the present disclosure is about 10 seconds, and the page fault and checkpointing time for moving the data can be negligible when compared to the overall processing time of the electronic device It is time.
그리고, 본 개시의 전자 장치는 수시로 메인 메모리 영역의 데이터를 파일 시스템 영역으로 이동시키기 때문에 오류가 발생하더라도 롤백(roll back) 시키기 위한 데이터가 상대적으로 적다. 따라서, 본 개시의 전자 장치는 롤백 시간이 종래의 전자 장치보다 현저히 줄어들 수 있다. 또한, 본 개시의 전자 장치는 다양한 방식을 적용하여 데이터 이동 시간을 줄이고, 데이터의 지속성(persistency) 및 일관성(consistency)을 보장할 수 있다. 구체적인 실시 예는 후술하기로 한다.And, since the electronic device of this disclosure occasionally moves the data of the main memory area to the file system area, data for rolling back even if an error occurs is relatively small. Thus, the electronic device of the present disclosure can significantly reduce the rollback time compared to conventional electronic devices. In addition, the electronic device of the present disclosure can apply various schemes to reduce data movement time and ensure data persistency and consistency. A specific embodiment will be described later.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 블록도이다.3 is a block diagram of an electronic device according to one embodiment of the present disclosure;
도 3을 참조하면, 전자 장치(100)는 프로세서(110)와 메모리(120)를 포함한다. 메모리(120)는 메인 메모리 영역과 파일 시스템 영역을 포함하는 뉴메모리다. 상술한 바와 같이, 메인 메모리 영역은 종래의 주메모리 역할을 수행하고, 파일 시스템 영역은 종래의 스토리지 역할을 수행할 수 있다.Referring to FIG. 3, the
메모리(120)의 메인 메모리 영역은 연산 과정에서 변경되는 데이터를 업데이트할 수 있다. 그리고, 메인 메모리 영역은 데이터가 변경된 페이지 정보를 라이팅하는 체크 포인트 테이블을 포함할 수 있다. 체크 포인트 테이블은 데이터가 변경된 페이지 정보 또는 복사된 페이지 정보를 포함할 수 있다. 본 개시의 일 실시 예로, 메모리(120)의 저장 단위를 페이지로 설명하고 있지만, 저장 단위는 바이트, 워드, 블록 등 다양하게 설정될 수 있다.The main memory area of the
그리고, 메모리(120)는 파일 시스템 영역을 포함한다. 파일 시스템 영역은 기 설정된 이벤트 또는 기 설정된 주기에 따라 메인 메모리 영역의 데이터를 저장하는 역할을 수행한다. 파일 시스템 영역은 버퍼와 파일 저장부를 포함하고, 전자 장치(100)가 연산을 수행하는 동안 버퍼에 데이터를 저장해 두었다가, 연산이 종료되거나 업데이트 신호를 수신하면 버퍼의 데이터가 파일 저장부에 라이팅(writing)될 수 있다. 예를 들어, 연산이 종료되거나 업데이트 신호가 수신되는 경우는 파일 시스템 영역에 대한 체크 포인팅을 수행할 때일 수 있다.And, the
프로세서(110)는 연산을 수행하고, 기 설정된 조건에 따라 메모리(120)의 메인 메모리 영역 및 파일 시스템 영역에 대해 체크 포인팅을 수행한다. 프로세서(110)는 메인 메모리 영역에 대해 체크 포인팅을 수행할 때, 체크 포인트 테이블을 초기화하고 메인 메모리 영역의 페이지의 속성을 읽기 전용(read-only)으로 설정할 수 있다.The
또한, 프로세서(110)는 기 설정된 조건에 따라 연산 중에라도 메모리(120)의 메인 메모리 영역의 데이터를 정리하고 파일 시스템 영역으로 이동시킬 수 있다. 예를 들어, 프로세서(110)는 페이지에 데이터가 가득 찬 경우, 체크 포인트 테이블이 가득 찬 경우 등과 같이 페이지 폴트가 발생될 때 메인 메모리 영역의 데이터를 파일 시스템 영역으로 이동시킬 수 있다.In addition, the
아래에서는 전자 장치(100)의 세부적인 블록도를 설명한다.A detailed block diagram of the
도 4는 본 개시의 일 실시 예에 따른 프로세서의 세부 블록도이다.4 is a detailed block diagram of a processor in accordance with one embodiment of the present disclosure;
도 4를 참조하면, 프로세서(110)는 관리부(111), 제어부(112) 및 복원부(113)를 포함할 수 있다. 경우에 따라, 프로세서(110)는 관리부(111), 제어부(112) 또는 복원부(113) 중 일부 구성만을 포함할 수도 있다.Referring to FIG. 4, the
관리부(111)는 체크 포인팅이 수행되도록 지정된 이벤트가 발생하는지 여부를 판단할 수 있다. 일 실시 예로서, 관리부(111)는 프로세서(110)에 의해 수행되는 제1 프로세스에 관한 문맥 전환을 이벤트로서 판단할 수 있다. 아래의 설명에서 문맥 전환은 프로세서에 의해 수행되는 프로세스를 전환하기 위해 이전에 실행되는 프로세스의 상태를 저장하고, 새로운 프로세스 상태로 복구하는 전자 장치의 동작을 나타낼 수 있다. 제1 프로세스는 현재 진행 중인 연산 과정일 수 있다.The
다른 일 실시 예로서, 관리부(111)는 프로세서(110)에 의해 수행되는 제1 프로세스에 관한 문맥 전환이 미리 지정된 횟수만큼 수행되는 경우를 이벤트로서 판단할 수 있다.In another embodiment, the
제어부(112)는 판단 결과에 따라, 이벤트가 발생된 시점의 제1 프로세스에 관한 정보를 뉴메모리 내에 저장할 수 있다. 보다 구체적으로, 제어부(112)는 제1 프로세스에 관한 어드레스를 롤 백(roll back)이 수행되기 위한 정보로서 저장할 수 있다. 또한, 제어부(112)는 fork() 함수 호출을 이용하여 제1 프로세스에 관한 태스크 구조를 뉴메모리로 복사할 수 있다. 제어부(112)는 제1 프로세스에 관한 제1 데이터의 변경이 발생하는 경우에, 태스크 구조 내에서 제1 데이터를 포함하는 페이지를 CoW(Copy on Write) 방식으로 업데이트할 수 있다.The
또한, 제어부(112)는 제1 프로세스에 관한 최신의(latest) 어드레스를 뉴메모리 내에 롤백이 수행되기 위한 정보로서 저장하고, 이전에 저장된 나머지 어드레스를 삭제할 수 있다. 다른 일 실시 예로서, 제어부(112)는 제1 프로세스에 관한 최신의 어드레스를 버져닝(versioning)할 수 있다. 그에 따라, 제어부(112)는 복수의 시점에 각각 대응하는 복수의 버전의 복수의 어드레스를 뉴메모리 내에 저장할 수 있다. In addition, the
다른 일 실시 예로서, 제어부(112)는 이벤트가 발생한 시점의 제1 데이터 및 제1 메타 데이터를 파일 시스템 내에 저장할 수 있다.In another embodiment, the
복원부(113)는 전자 장치에 관한 시스템 오류가 발생한 경우에, 메인 메모리 영역에 존재하는 제2 데이터 및 제2 메타 데이터를 삭제하고, 제1 데이터 및 제1 메타 데이터를 롤백할 수 있다. 예를 들어, 메인 메모리 영역은 프로세스 영역일 수 있다. 또한, 복원부(113)는 뉴메모리 내에 저장된 제1 프로세스에 관한 상태 정보를 이용하여 현재 실행 중인 제1 프로세스를 복원할 수 있다.The restoring
한편, 프로세서는 메모리의 관리를 위한 매니저를 포함할 수 있다. 그리고, 프로세서는 메인 메모리 영역을 관리하는 태스크 매니저 및 파일 시스템 영역을 관리하는 IO 매니저를 포함할 수 있다.On the other hand, the processor may include a manager for managing the memory. The processor may include a task manager for managing the main memory area and an IO manager for managing the file system area.
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 아키텍처를 설명하는 도면이다.5 is a diagram illustrating an architecture of an electronic device according to an embodiment of the present disclosure;
도 5를 참조하면 매니저(10), P-task(11), P-io(12), 프로세스의 메모리 어드레스 공간(Memory Address Space of Process)(21) 및 프로세스의 파일(File of Process)(22)가 도시되어 있다. 매니저(10)는 P-task(11) 및 P-io(12)를 전체적으로 관리할 수 있다. P-task(11)는 태스크 매니저로서 메인 메모리 영역의 연산 및 체크 포인팅 등의 과정을 관리할 수 있다. 그리고, P-io(12)는 IO 매니저로서 파일 시스템 영역의 연산 및 체크 포인팅 등의 과정을 관리할 수 있다. 본 개시의 전자 장치는 메인 메모리 영역과 파일 시스템 영역을 포함하는 뉴메모리를 이용함으로써 데이터의 지속성을 유지할 수 있다. 따라서, 일 실시 예로서, 태스크 매니저는 P(persistent)-task(11)로 칭할 수 있고, IO 매니저는 P(persistent)-io로 칭할 수 있다.5, the
체크 포인팅을 위해 메모리에 저장해야 하는 시스템 상태는 작업 영역과 관련된 정보, 즉, 프로세스의 메모리 주소 공간(21), 프로세스의 파일(22)을 포함할 수 있다. 메모리 주소 공간 및 파일 공간의 상태를 저장할 때 두 파일은 임의의 위치에 저장될 수 없지만, 전체 일관성 있는 상태로 동기화되어야 한다. 매니저(10)는 각 체크 포인팅 주기마다 P-task(11)와 P-io(12)간의 데이터를 동기화하여 모든 데이터가 일관되도록 한다. 예를 들어, 프로세스의 메모리 주소 공간(21)은 메인 메모리 영역일 수 있고, 파일 공간은 파일 시스템 영역일 수 있다.The system state that must be stored in the memory for checkpointing may include information related to the workspace, i. E., The
구체적으로, P-task(11)(또는, 태스크 매니저)는 프로세스의 메모리 주소 공간(또는, 메인 메모리 영역)의 일관성을 유지 관리할 수 있다. 메모리 주소 공간에 대한 업데이트는 스토어(store) 명렁어가 실행될 때만 발생된다. 따라서, 라이트(write) 연산이 업데이트르 호출하는 파일 영역(또는, 파일 시스템 영역)과는 다르다. 따라서, P-task(11)는 모든 스토어 명령에 대해 업데이트를 만들기 전에 원본 데이터의 복사본을 만든다. 일 실시 예로서, 메모리는 페이지 단위로 관리될 수 있으므로 페이지 단위로 사본이 만들어진다. 그러나, 모든 스토어 명령에서 사본이 생성되는 것은 아니다. 수정되지 않은 원본 데이터는 일시적인 오류로 인해 롤백할 데이터이다.Specifically, the P-task 11 (or the task manager) can maintain the consistency of the memory address space (or the main memory area) of the process. Updates to the memory address space occur only when the store header is executed. Therefore, the write operation differs from the file area (or the file system area) that the update operation calls. Thus, the P-
P-io(12)(또는, IO 매니저)는 파일 시스템(또는, 파일 시스템 영역)의 일관성을 유지 관리할 수 있다. 파일 시스템 영역은 버퍼와 파일 저장부를 포함할 수 있다. 즉, 파일에 대한 업데이트는 데이터 또는 메타데이터에 대해 라이트(write) 명령에 따라 발생된다. P-task(11)와 마찬가지로 P-io(12)는 연산과 체크 포인팅 단계를 번갈아 수행할 수 있다. 연산 단계의 모든 라이트 명령에 대해 원래 데이터의 복사본이 업데이트 전에 생성될 수 있다. 그러나, P-io(12)는 전통적인 파일 시스템에서 버퍼 캐시를 관리하는 것과 유사한 메커니즘을 사용할 수 있다. 라이팅이 발생되면, 수정된 블록이 버퍼에 저장되고 이 페이지 이후의 모든 리드(read) 및 라이트(write)는 버퍼에서 처리될 수 있다. 그러나, 버퍼의 내용은 제거되지 않고 체크 포인팅 수행 전까지 버퍼에 남는다. P-io(12)는 체크 포인트 단계에서 버퍼의 모든 페이지를 한꺼번에 파일 저장부로 플러시(flush)할 수 있다.The P-io 12 (or the IO manager) can maintain the consistency of the file system (or the file system area). The file system area may include a buffer and a file storage. That is, an update to a file occurs according to a write command for data or metadata. Like the P-
P-task(11)와 P-io(12)는 독립적인 구성으로 프로세스의 작업 영역(또는, 메인 메모리 영역)과 프로세스의 파일을 각각 검사할 수 있다. 매니저(10)는 P-task(11)와 P-io(12)를 동기화하여 데이터의 일관성을 유지하는 것이다. 그리고, 매니저(10)는 오류 발생시 복구 프로세스를 수행하는 것이다.The P-
매니저(10)가 P-task(11)와 P-io(12)를 동기화하는 방법에 대해 설명한다. P-task(11)와 P-io(12)는 연산과 체크 포인팅 과정을 번갈아 수행할 수 있다. 메인 메모리 영역의 연산 과정과 파일 시스템 영역의 연산 과정은 동시에 수행될 수 있다. 기 설정된 시점에 체크 포인팅이 시작된다. 체크 포인팅 간격은 사용자에 의해 설정할 수 있다. 매니저(10)는 응용 프로그램과 관련된 프로세스를 중지시킨다. 응용 프로그램과 관련된 프로세스가 중지되면, 모든 프로세스의 전체 상태가 동기화될 수 있다. 다음에, P-task 체크 포인팅 단계가 수행되고 이후 P-io 체크 포인팅 단계가 수행될 수 있다. 기 설정된 체크 포인팅 순서는 오류 발생시 복구 프로세스에 의해 일관성 있는 상태로 응용 프로그램 상태를 반환하도록 할 수 있다.A method for the
그리고, 매니저(10)는 복구 프로세스를 수행할 수 있다. 오류가 복구되면 전자 장치는 응용 프로그램을 일관된 상태로 되돌려야 한다. 매니저(10)는 저장된 응용 프로그램을 검사하고 복구 과정을 수행할 수 있다. 연산 단계 또는 P-task 체크 포인팅 단계에서 오류가 발생되는 경우, 응용 프로그램은 이전의 일관성 있는 상태로 복구될 수 있다. 즉, 데이터는 롤백 복구될 수 있다. 또는, P-io 체크 포인팅 단계에서 오류가 발생되는 경우, P-task 체크 포인팅 단계를 이미 통과하였으므로 데이터는 롤포워드될 수 있다. 즉, 본 개시의 전자 장치는 모든 파일 데이터가 버퍼에 있고, 파일 저장부에 버퍼에 있는 데이터를 쓰는 것은 멱등(idempotent)이기 때문에 파일 저장부에 버퍼 데이터를 쓰는 것만으로도 일관성을 유지할 수 있다.Then, the
도 6은 본 개시의 일 실시 예에 따른 전자 장치가 프로세스에 관한 정보를 저장하는 과정을 설명하는 도면이다.Figure 6 is a diagram illustrating a process by which an electronic device according to an embodiment of the present disclosure stores information about a process.
도 6은 일 실시 예에 따른 전자 장치가 프로세스에 관한 정보를 저장하는 과정을 설명하는 예시도이다. 도 6을 참조하면, 미리 지정된 이벤트들(30, 40, 50)에 따라 프로세스에 관한 정보 P1 및 P2를 생성하여 저장하는 전자 장치가 제공될 수 있다.6 is an exemplary diagram illustrating a process by which an electronic device according to an embodiment stores information about a process. Referring to FIG. 6, an electronic device may be provided that generates and stores information P 1 and P 2 related to a process according to
본 실시 예에서 프로세스에 관한 정보는 전체 시스템의 비정상적 종료와 같은 결함을 대비하여 롤백(roll back)이 수행되는 시점의 정보를 나타낼 수 있다. 일 실시 예에 따를 때, 미리 지정된 이벤트들(30, 40, 50)은 문맥 전환(context switching)으로 구현될 수 있다. In this embodiment, the information about the process may indicate information at the time when a roll back is performed in preparation for a defect such as abnormal termination of the entire system. According to one embodiment,
도 6에서 도시된 것과 같이, 제1 문맥 전환(30)에 따라 제1 프로세스 A1에서 제2 프로세스 A2로 문맥이 전환될 수 있다. 마찬가지로, 제2 문맥 전환(30)에 따라 제3 프로세스 A3에서 다시 제1 프로세스 A1으로 문맥이 전환될 수 있다. 다만, 도 6에서 도시되는 이벤트들(30, 40, 50)의 실시 예는 본 발명의 사상의 이해를 돕기 위한 예시적 기재일 뿐, 다른 실시 예의 범위를 한정하거나 제한하는 것은 아니다. 이를 테면, 문맥 전환이 미리 지정된 횟수만큼 실행되는 시점이 이벤트로서 이용될 수도 있을 것이다. 구체적으로, 문맥 전환이 실행되는 커맨드가 n 배 호출된 시점이 이벤트로서 이용될 수 있다.As shown in FIG. 6, the context can be switched from the first process A1 to the second process A2 in accordance with the
전자 장치 내의 프로세서는 제1 문맥 전환(30)에 따라 제2 프로세스 A2를 새롭게 수행할 수 있다. 다만, 본 실시 예의 전자 장치는 시스템 에러와 같은 결함을 대비하여 롤백 시점으로 이용하기 위한 제1 프로세스 A1에 관한 정보 P1을 미리 저장할 수 있다. 보다 구체적으로, 전자 장치는 Fork() 함수를 이용하여 제1 프로세스 A1에 관한 정보 P1을 생성할 수 있다. 보다 구체적으로, 정보 P1 는 제1 문맥 전환(30)이 발생하는 시점의 제1 프로세스 A1에 관한 어드레스를 나타낼 수 있다.The processor in the electronic device may newly perform the second process A2 in accordance with the
또한, 전자 장치는 실행 중이었던 제1 프로세스 A1의 태스크 구조를 복제하는 방식으로 제1 프로세스 A1에 정보 P1을 생성할 수 있다. 그에 따라, 제1 프로세스 A1와 제1 프로세스 A1에 정보 P1은 동일한 메모리 공간을 공유하도록 생성될 수 있다.Further, the electronic device can generate the information P1 in the first process A1 in such a manner as to duplicate the task structure of the first process A1 that was being executed. Accordingly, the information P1 in the first process A1 and the first process A1 can be generated so as to share the same memory space.
전자 장치에 의해 다양한 프로세스가 실행되다가 제2 문맥 전환(40)에 의해 다시 제1 프로세스 A1가 실행되는 경우가 존재할 수 있다. 전자 장치는 제1 프로세스 A1에 관한 정보 P1으로부터 변경된 영역에 관한 페이지 정보만을 독립적으로 업데이트할 수 있다.There may be a case where various processes are executed by the electronic device and the first process A1 is executed again by the second context switching 40. [ The electronic device can independently update only the page information regarding the changed area from the information P1 relating to the first process A1.
예시적으로, 제1 문맥 전환(30)이 수행된 시점의 제1 텍스트(61)가 2로 저장된 경우에, 제2 문맥 전환(40)에 따라 제1 텍스트(61)에 관한 변경이 발생된 경우가 존재할 수 있다. 전자 장치는 제1 텍스트(61)에 대해 Copy on Write 방식으로 제2 텍스트(62)로서 300이라는 데이터를 업데이트할 수 있다. 그에 따라, 추후에 제3 문맥 전환(50)이 발생하는 경우에, 전자 장치는 제1 프로세스 A1에 관한 정보 P2가 제2 텍스트(62)와 동일한 값에 대응하는 제3 텍스트(63)인 300을 포함하도록 생성할 수 있다.Illustratively, if the
본 실시 예에 따른 전자 장치는 Fork() 함수와 Copy on Write 방식을 이용하여 프로세스의 최근 상태를 체크 포인팅할 수 있다. 그에 따라, 본 실시 예에 따른 전자 장치는 시스템 전체의 부하를 줄이고, 가벼운 자원을 이용하는 것만으로 내구성을 높이는 효과를 기대할 수 있다.The electronic device according to the present embodiment can check-point the recent state of the process using the Fork () function and the Copy on Write method. Accordingly, the electronic device according to the present embodiment can be expected to have an effect of improving the durability by reducing the load of the entire system and using only light resources.
도 7은 본 개시의 일 실시 예에 따른 전자 장치가 프로세스에 관한 정보를 관리하는 구조를 설명하는 도면이다.7 is a diagram illustrating a structure in which an electronic device according to an embodiment of the present disclosure manages information about a process.
도 7을 참조하면, 전자 장치에 포함되는 뉴메모리(120)는 실행중인 프로세스에 대해 런 큐(run queue)(121)와 퍼시스턴시 큐(persistency queue)(122)를 포함할 수 있다. 일 실시 예로서, 런 큐(121) 및 퍼시스턴스 큐(122)는 메모리(120)의 메인 메모리 영역에 포함될 수 있다.Referring to FIG. 7, the
전자 장치는 뉴메모리(120) 내에서 실행되는 프로세스들이 저장된 연결 리스트에 관한 런 큐(121)를 포함할 수 있다. 본 실시 예에서, 전자 장치는 런 큐(121)를 이용하여 제1 프로세스 A1, 제2 프로세스 A2 및 제3 프로세스 A3를 관리할 수 있다.The electronic device may include a
또한, 전자 장치는 현재 실행되지 않은 상태의 프로세스에 관한 정보를 저장하는 퍼시스턴시 큐(122)를 포함할 수 있다. 예시적으로, 제1 문맥 전환(30)에 대응하여 제1 프로세스 A1에 관한 정보 P1이 퍼시스턴시 큐(122)를 이용하여 관리될 수 있다. 제1 프로세스 A1에 관한 정보 P1는 제1 문맥 전환(30)이 발생한 시점의 제1 프로세스 A1의 상태에 관한 정보를 나타낼 수 있다. 예시적으로, 컴퓨팅 시스템 내에 시스템 오류와 같은 상황이 발생한 경우에, 제1 문맥 전환(30)이 발생한 시점은 프로세스가 롤백 되기 위한 기준 시점으로서 이용될 수 있다.In addition, the electronic device may include a
예시적으로, 런 큐(121)에 존재하는 제1 프로세스 A1이 실행되는 도중에 시스템의 결함이 발생한 경우가 있을 수 있다. 이 경우에, 전자 장치는 실행 중인 제1 프로세스 A1를 강제 종료 할 수 있다. 또한, 전자 장치는 퍼시스턴시 큐(122)에 미리 저장된 제1 프로세스 A1에 관한 정보 P1를 런 큐(121)로 복사하여 롤백 시점에 대응하는 제1 프로세스 A1를 다시 복원할 수 있다.As an example, there may be a case where a system defect occurs while the first process A1 existing in the
본 실시 예에 따른 전자 장치는 오늘날 뉴 메모리로서 널리 이용되는 NVRAMS의 비휘발성 특징을 이용하여 시스템 부하를 줄이면서 프로세스의 롤백 정보를 저장하여 내구성은 높이는 효과를 기대할 수 있다.The electronic device according to the present embodiment can expect the effect of increasing the durability by storing the rollback information of the process while reducing the system load by utilizing the nonvolatile characteristic of NVRAMS which is widely used as a new memory today.
도 8은 본 개시의 다른 실시 예에 따른 전자 장치가 데이터 및 메타 데이터를 저장하는 과정을 설명하는 도면이다.8 is a diagram illustrating a process of storing data and metadata in an electronic device according to another embodiment of the present disclosure.
도 8을 참조하면, 본 실시 예에 따른 전자 장치에 포함되는 뉴메모리(120)의 구조도가 도시된다. 뉴메모리(120)는 메인 메모리 영역(121)과 파일 시스템 영역(122)을 포함할 수 있다.Referring to FIG. 8, a structural diagram of a
본 실시 예에 따른 전자 장치는 실행 중인 프로세스에 따라 새로운 데이터의 생성(creating) 작업이나 수정(modification) 작업(531)이 실행되는 경우에 관련 데이터를 메인 메모리 영역(121)에 존재하는 제1 메타 데이터 M1에 업데이트 할 수 있다. 또한, 전자 장치는 실행 중인 프로세스에 따라 데이터의 쓰기(writing) 작업(73a, 73b)이 실행되는 경우에 관련 데이터를 메인 메모리 영역(121)에 존재하는 제1 데이터 D1에 업데이트 할 수 있다.The electronic device according to the present embodiment is configured to store the related data in a first meta existing in the
전자 장치는 체크 포인팅이 수행되는 미리 지정된 이벤트가 발생하는지 여부를 판단할 수 있다. 일 실시 예로서, 미리 지정된 이벤트는 전자 장치에 의해 수행되는 프로세스에 관한 문맥 전환을 나타낼 수 있다. 다른 일 실시 예로서, 미리 지정된 이벤트는 전자 장치에 의해 수행되는 프로세스에 관한 문맥 전환이 미리 지정된 횟수만큼 수행되는 경우를 나타낼 수 있다.The electronic device can determine whether or not a predetermined event in which checkpointing is performed occurs. In one embodiment, the predefined event may represent a context change regarding the process performed by the electronic device. In another embodiment, the predefined event may indicate when the context switching of the process performed by the electronic device is performed a predetermined number of times.
전자 장치는 미리 지정된 이벤트가 발생됨에 따라 메인 메모리 영역(121)에 존재하는 제1 데이터 D1 및 제1 메타 데이터 M1 모두를 파일 시스템 영역(122)으로 복사(73a, 73b)할 수 있다. 또한, 전자 장치는 복사된 데이터 및 메타 데이터를 발생된 이벤트의 시점에 대한 제2 데이터 D2 및 제2 메타 데이터 M2로서 저장할 수 있다. 본 실시 예에 따른 전자 장치는 미리 지정된 이벤트에 따라 데이터 및 메타 데이터 모두를 뉴메모리(120) 내의 파일 시스템 영역(122)으로 저장할 수 있다.The electronic device may copy 73a and 73b both the first data D1 and the first meta data M1 present in the
다만, 전자 장치는 제1 데이터 D1 및 제1 메타 데이터 M1가 파일 시스템 영역(122)으로 복사(73a, 73b)된 이후에도 데이터의 생성(creating) 작업이나 수정(modification) 작업(71) 또는 데이터의 쓰기(writing) 작업(72)이 발생하는 경우에 새로운 데이터 및 메타 데이터들을 메인 메모리 영역의 제1 데이터 D1 및 제1 메타 데이터 M1로서 지속적으로 업데이트할 수 있다.However, even after the first data D1 and the first meta data M1 are copied 73a and 73b to the
프로세스를 실행하는 전자 장치에 시스템 오류나 결함이 발생한 경우를 가정하자. 전자 장치는 앞서 도 6에서 설명된 것과 같이 실행 중인 프로세스를 강제 종료하고, 프로세스에 관한 상태 정보를 롤백하여 복원할 수 있다. 본 실시 예에 따른 전자 장치는 메인 메모리 영역(121)에 저장된 제1 데이터 D1 및 제1 메타 데이터 M1를 삭제(74)할 수 있다. 또한, 전자 장치는 파일 시스템 영역(122) 내에 저장된 이전의 제2 데이터 D2 및 제2 메타 데이터 M2를 메인 메모리 영역(121)으로 다시 롤백 시킬 수 있다. 그에 따라, 이전의 프로세스 시점에 대응하는 데이터 및 메타 데이터 역시도 함께 복원되어 시스템 전체의 내구성이 향상되는 효과를 기대할 수 있다.Suppose a system error or defect occurs in an electronic device that executes a process. The electronic device may forcibly terminate the running process as described above with reference to FIG. 6 and rollback and restore the status information regarding the process. The electronic device according to the present embodiment may delete the first data D1 and the first meta data M1 stored in the main memory area 121 (74). The electronic device may also roll back the previous second data D2 and the second metadata M2 stored in the
도 9는 본 개시의 일 실시 예에 따른 연산 및 체크 포인팅을 수행하는 과정을 구체적으로 설명하는 도면이다.FIG. 9 is a diagram for explaining a process of performing computation and checkpointing according to an embodiment of the present disclosure.
도 9를 참조하면, 본 개시의 전자 장치가 연산 및 체크 포인팅을 수행하는 과정이 도시되어 있다. 전자 장치는 이전 단계의 연산이 종료되면 체크 포인팅을 하고, 다음 연산 과정을 수행한다. Referring to Fig. 9, the process of computing and checkpointing electronic devices of the present disclosure is illustrated. The electronic device performs checkpointing when the calculation of the previous step is completed, and then performs the following calculation process.
전자 장치는 메인 메모리 영역에 대한 체크 포인팅을 수행할 수 있다. 전자 장치는 메인 메모리 영역에 대한 체크 포인팅을 수행할 때 체크 포인트 테이블을 초기화하고 메모리를 읽기 전용(read-only)으로 설정할 수 있다. 메모리가 읽기 전용으로 설정되었기 때문에 메인 메모리 영역의 페이지에는 데이터가 씌여질 수 없다. 체크 포인트 테이블은 메인 메모리 영역에 포함된 테이블로서, 데이터가 변경된 페이지 정보를 라이팅(writing)하는 역할을 수행한다. 본 실시 예에서는 데이터 단위를 페이지로 가정하고 설명하지만, 데이터 단위는 바이트, 워드, 2바이트, 2워드 등과 같이 다양하게 설정될 수 있다.The electronic device can perform checkpointing on the main memory area. The electronic device may initialize the checkpoint table and set the memory to be read-only when performing checkpointing on the main memory area. Since the memory is set to read-only, no data can be written to pages in the main memory area. The checkpoint table is a table included in the main memory area, and plays a role of writing page information in which data is changed. In this embodiment, the data unit is assumed to be a page, but the data unit can be variously set as bytes, words, 2 bytes, 2 words, and so on.
전자 장치는 페이지 10(80)과 관련한 연산을 수행할 수 있다. 연산 중에 페이지 10의 데이터가 업데이트될 수 있다. 그러나, 메모리의 속성이 읽기 전용이기 때문에 페이지 10(80)의 데이터는 변경되지 않는다. 전자 장치는 체크 포인트 테이블에 업데이트가 필요한 페이지 정보를 라이팅하고, 페이지 10을 복사한 페이지를 생성한다. 도 9에서는 페이지 14(80)가 이전의 페이지 10을 복사한 페이지이다. 그리고, 전자 장치는 체크 포인트 테이블에 변경된 페이지 정보를 라이팅한다. 도 9에 도시된 바와 같이 체크 포인트 테이블(86)은 페이지 10에서 페이지 14로 변경되었다는 정보를 포함한다.The electronic device may perform the operations associated with page 10 (80). During operation, the data on
전자 장치는 메모리의 속성을 쓰기(write)로 변경한다. 전자 장치는 페이지 10을 업데이트한다. 즉, 전자 장치는 업데이트된 페이지 10(80a)과 복사된 페이지 14(81)이 존재한다. 전자 장치는 상술한 과정을 통해 데이터를 업데이트할 수 있다. 또한, 전자 장치는 복사한 페이지 정보 및 데이터를 포함하고 있으므로 오류가 발생한 경우, 복사한 페이지 정보를 이용하여 용이하게 데이터를 롤백할 수 있다. 전자 장치는 메인 메모리 영역의 연산이 종료되면, 다시 메인 메모리 영역에 대해 체크 포인팅 과정을 수행한다.The electronic device changes the attribute of the memory to write. The electronic
한편, 상술한 바와 같이, 전자 장치는 메인 메모리 영역과 파일 시스템 영역의 데이터를 일치시켜야 한다. 파일 시스템 영역은 버퍼와 파일 저장부를 포함한다. 메인 메모리 영역의 데이터가 변경된 경우, 전자 장치는 파일 시스템 영역의 버퍼에 변경된 블록(92)을 라이팅한다. 연산 및 메인 메모리 영역에 대한 체크 포인팅 과정이 수행될 때, 전자 장치는 파일 저장부의 데이터 블록(91)은 유지한 채 버퍼에만 업데이트된 데이터 블록(92)을 가질 수 있다. 만일 연산 및 메인 메모리 영역에서 오류가 발생된 경우, 전자 장치는 버퍼에 저장된 업데이트된 데이터 블록(92)을 버리면 된다.On the other hand, as described above, the electronic device must match the data in the main memory area and the file system area. The file system area includes a buffer and a file storage. If the data in the main memory area has changed, the electronic device writes the changed
전자 장치는 메인 메모리 영역에 대한 체크 포인팅 과정이 종료되면, 파일 시스템 영역에 대한 체크 포인팅 과정을 수행한다. 파일 시스템 영역에 대한 체크 포인팅 과정을 수행할 때, 전자 장치는 버퍼에 저장된 데이터 블록(92)을 파일 저장부의 데이터 블록(91)에 라이팅한다. 만일, 파일 시스템 영역에 대하 체크 포인팅 과정 수행 중에 오류가 발생하더라도, 이미 메인 메모리 영역에 대한 체크 포인팅 과정은 종료되었으므로 전자 장치는 버퍼에 저장된 데이터 블록(92)을 파일 저장부에 라이팅할 수 있다. 즉, 전자 장치는 롤포워드할 수 있다.When the checkpointing process for the main memory area is completed, the electronic device performs a checkpointing process on the file system area. When performing a checkpointing process on the file system area, the electronic device writes the data block 92 stored in the buffer to the data block 91 of the file store. Even if an error occurs during the checkpointing process for the file system area, since the checkpointing process for the main memory area has already been completed, the electronic device can write the data block 92 stored in the buffer to the file storage. That is, the electronic device can roll forward.
즉, 전자 장치는 연산을 수행할 때 원본 페이지의 데이터 업데이트가 요청되는 경우 그 페이지의 정보를 체크 포인트 테이블에 라이팅할 수 있다. 그리고, 전자 장치는 그 페이지를 복사한 복사 페이지를 생성하고, 복사 페이지의 정보를 체크 포인트 테이블에 라이팅할 수 있다. 그리고, 전자 장치는 메모리의 속성을 쓰기로 변경하여 원본 페이지의 데이터를 업데이트할 수 있다. 또한, 전자 장치는 연산을 수행하거나 메인 메모리 영역에 대해 체크 포인팅을 수행할 때 오류가 발생하는 경우, 체크 포인트 테이블에 라이팅된 정보에 기초하여 원본 페이지를 롤백할 수 있다.That is, when performing an operation, the electronic device can write the information of the page to the checkpoint table when data update of the original page is requested. The electronic device then generates a copy page that has copied the page and can write the information of the copy page to the checkpoint table. Then, the electronic device can update the data of the original page by changing the attribute of the memory to write. The electronic device may also roll back the original page based on the information written to the checkpoint table if an error occurs when performing an operation or performing checkpointing on the main memory area.
한편, 전자 장치는 파일 시스템 영역을 포함하고, 파일 시스템 영역은 버퍼 및 파일 저장부를 포함할 수 있다. 파일 저장부는 원본 데이터 블록을 포함할 수 있다. 전자 장치는 그 데이터 블록이 업데이트되는 경우, 업데이트된 데이터 블록을 버퍼에 저장할 수 있다. 그리고, 전자 장치는 파일 시스템 영역에 대해 체크 포인팅을 수행할 때 업데이트된 데이터 블록을 파일 저장부에 라이팅할 수 있다. 상술한 바와 같이, 전자 장치는 메인 메모리 영역에 대한 체크 포인팅을 수행한 후 파일 시스템 영역에 대한 체크 포인팅을 수행할 수 있다.On the other hand, the electronic device may include a file system area, and the file system area may include a buffer and a file storage. The file storage unit may include a block of original data. The electronic device may store the updated data block in a buffer when the data block is updated. The electronic device may then write updated data blocks to the file store when performing checkpointing on the file system area. As described above, the electronic device can perform checkpointing on the main memory area, and then perform checkpointing on the file system area.
지금까지 데이터의 지속성 및 일관성을 유지시키기 위한 다양한 실시 예를 설명하였다. 아래에서는 전자 장치 제어 방법의 흐름도를 설명한다.Various embodiments have been described so far to maintain data consistency and consistency. A flow chart of the electronic device control method will be described below.
도 10은 본 개시의 일 실시 예에 따른 전자 장치 제어 방법의 흐름도이다.10 is a flowchart of an electronic device control method according to an embodiment of the present disclosure.
도 10을 참조하면, 전자 장치는 체크 포인팅을 수행한다(S1010). 전자 장치의 뉴메모리는 메인 메모리 영역과 파일 시스템 영역을 포함한다. 전자 장치는 메인 메모리 영역에 대한 체크 포인팅을 수행한 후 파일 시스템 영역에 대한 체크 포인팅을 수행할 수 있다. 메인 메모리 영역은 데이터가 변경된 페이지 정보를 라이팅하는 체크 포인트 테이블을 포함할 수 있다. 그리고, 전자 장치는 메인 메모리 영역에 대해 체크 포인팅을 수행할 때 체크 포인트 테이블을 초기화하고, 메모리의 페이지 속성을 읽기 전용으로 설정할 수 있다.Referring to FIG. 10, the electronic device performs check pointing (S1010). The new memory of the electronic device includes a main memory area and a file system area. The electronic device may perform checkpointing on the main memory area and then perform checkpointing on the file system area. The main memory area may include a checkpoint table that writes page information whose data has changed. Then, the electronic device initializes the checkpoint table when performing checkpointing on the main memory area, and can set the page attribute of the memory to be read-only.
전자 장치는 연산을 수행한다(S1020). 전자 장치는 원본 페이지의 데이터 업데이트가 요청되면, 원본 페이지 정보를 체크 포인트 테이블에 라이팅한다. 그리고, 전자 장치는 복사 페이지를 생성하고, 복사 페이지 정보도 체크 포인트 테이블에 라이팅한다. 전자 장치는 메모리 속성을 라이트로 변경하고 원본 페이지의 데이터를 업데이트할 수 있다.The electronic device performs an operation (S1020). The electronic device writes the original page information to the checkpoint table when data update of the original page is requested. Then, the electronic device generates a copy page and also writes copy page information to the checkpoint table. The electronic device can change the memory property to light and update the data on the original page.
도 11은 본 개시의 일 실시 예에 따른 이벤트에 따라 특정 프로세스에 관한 정보를 저장하는 전자 장치의 동작을 설명하는 흐름도이다.11 is a flow diagram illustrating the operation of an electronic device that stores information regarding a particular process in accordance with an event in accordance with an embodiment of the present disclosure;
도 11을 참조하면, 시스템의 내구성을 높이도록 동작하는 전자 장치의 체크 포인팅을 수행하는 방법이 도시된다. 전자 장치는 체크 포인팅이 수행되도록 지정된 이벤트가 발생하는지 여부를 판단할 수 있다(S1110). 체크 포인팅(check-pointing)은 실행 중인 프로세스에 관한 메인 메모리 영역 내에 저장된 변경된 데이터 및 메타 데이터들의 특정 시점에 대응하는 값을 저장하는 전자 장치의 동작을 나타낼 수 있다. 전자 장치는 미리 설정된 조건에 따라 다양한 이벤트들을 기준으로 하여 체크 포인팅을 수행할 수 있다.Referring to Fig. 11, a method of performing checkpointing of an electronic device operating to enhance the durability of the system is shown. The electronic device may determine whether an event designated to perform checkpointing occurs (S1110). Check-pointing may indicate an operation of the electronic device storing a value corresponding to a particular point in time of the changed data and metadata stored in the main memory area for a running process. The electronic device can perform checkpointing based on various events according to preset conditions.
전자 장치는, 판단 결과에 따라, 이벤트가 발생된 시점의 제1 프로세스에 관한 정보를 뉴메모리 내에 저장할 수 있다(S1120). 보다 구체적으로, 전자 장치는 이벤트가 발생된 시점의 제1 프로세스에 관한 어드레스를 뉴메모리 내에 저장할 수 있다. 또한, 전자 장치는 제1 프로세스에 관한 태스크(task) 구조를 뉴메모리 내에 복사할 수 있다.According to the determination result, the electronic device can store information on the first process at the time when the event is generated in the new memory (S1120). More specifically, the electronic device may store an address in the new memory associated with the first process at the time the event occurred. The electronic device may also copy the task structure for the first process into the new memory.
도 12는 본 개시의 일 실시 예에 따른 이벤트에 따라 특정 데이터 및 메타 데이터를 저장하는 전자 장치의 동작을 설명하는 흐름도이다.Figure 12 is a flow diagram illustrating the operation of an electronic device that stores specific data and metadata in accordance with an event in accordance with an embodiment of the present disclosure.
도 12를 참조하면, 체크 포인팅을 수행하는 전자 장치는 체크 포인팅이 수행되도록 지정된 이벤트가 발생하는지 여부를 판단할 수 있다(S1210). 판단의 결과에 따라, 전자 장치는 이벤트가 발생한 시점의 제1 데이터 및 제1 메타 데이터를 파일 시스템 내에 저장할 수 있다(S1220). 전자 장치는 이전 단계의 판단 결과에 따라 이벤트가 발생한 시점의 제1 데이터 및 제1 메타 데이터를 파일 시스템 내에 저장할 수 있다. 본 실시 예에서 메타 데이터는 디스크에 구조적으로 존재하는 데이터를 관리하기 위한 2차적 데이터를 나타낼 수 있다. 메타 데이터는 파일의 생성과 삭제, 디렉토리의 생성과 삭제, 파일 크기의 증가 감소에 따라 생성 또는 변경되는 데이터를 나타낼 수 있다. 본 실시 예에서 제1 데이터 및 제1 메타 데이터는 이벤트가 발생한 시점에 실행되는 프로세스에 연관되는 데이터 및 메타 데이터 각각을 나타낼 수 있다.Referring to FIG. 12, the electronic device performing checkpointing may determine whether an event designated to perform checkpointing occurs (S1210). According to the determination result, the electronic device can store the first data and the first metadata at the time when the event occurs in the file system (S1220). The electronic device can store the first data and the first metadata at the time when the event occurs according to the determination result of the previous step in the file system. In this embodiment, the metadata may represent secondary data for managing data structurally present in the disc. Metadata can represent data that is created or changed as files are created and deleted, directories are created and deleted, and file sizes increase or decrease. In this embodiment, the first data and the first metadata may represent each of data and metadata associated with a process executed at the time when an event occurs.
전자 장치에 관한 시스템 오류가 발생한 경우에, 메인 메모리 영역에 존재하는 제2 데이터 및 제2 메타 데이터를 삭제하고, 제1 데이터 및 제1 메타 데이터를 롤백할 수 있다(S1230). 전자 장치는 시스템 오류 또는 결함의 경우에 뉴메모리의 파일 시스템 내에 저장된 제1 데이터 및 제1 메타 데이터를 이용하여 롤백을 수행할 수 있다. 보다 구체적으로, 전자 장치는 시스템 오류가 발생한 경우에 메인 메모리 영역에 존재하는 제2 데이터 및 제2 메타 데이터를 삭제할 수 있다. 이에 따라, 전자 장치는 파일 시스템 내에서 저장되어 있는 이전의 제1 데이터 및 제1 메타 데이터를 롤백하여 이용할 수 있다.If a system error occurs in the electronic device, the second data and the second metadata existing in the main memory area may be deleted, and the first data and the first metadata may be rolled back (S1230). The electronic device may perform a rollback using the first data and the first metadata stored in the file system of the new memory in the event of a system error or defect. More specifically, the electronic device may delete the second data and the second metadata that are present in the main memory area when a system error occurs. Thus, the electronic device can roll back and use the previous first data and the first metadata stored in the file system.
이상에서 설명된 실시 예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented in hardware components, software components, and / or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may be implemented within a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array ), A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute one or more software applications that are executed on an operating system (OS) and an operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer <0055> program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적 으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 비일시적 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more of the foregoing, configured to configure the processing device to operate as desired, or independently or in combination (e.g., collectively) processing devices. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more non-volatile computer readable recording media.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다. A non-transitory readable medium is a medium that stores data for a short period of time, such as a register, cache, memory, etc., but semi-permanently stores data and is readable by the apparatus. In particular, the various applications or programs described above may be stored on non-volatile readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM,
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention.
100: 전자 장치
110: 프로세서 120: 메모리100: Electronic device
110: Processor 120: Memory
Claims (16)
연산을 수행하고, 기 설정된 조건에 따라 상기 메인 메모리 영역 및 상기 파일 시스템 영역에 대해 체크 포인팅을 수행하는 프로세서;를 포함하며,
상기 메인 메모리 영역은,
상기 메인 메모리 영역의 데이터가 변경된 페이지 정보를 라이팅(writing)하는 체크 포인트 테이블을 포함하고,
상기 프로세서는,
상기 체크 포인트 테이블을 초기화하고, 상기 메인 메모리 영역의 페이지의 속성(attribute)을 읽기 전용(read-only)으로 설정하며, 상기 메인 메모리 영역의 제1 페이지에 대한 데이터 업데이트가 요청되는 경우 상기 제1 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하고, 롤백(roll back)을 위해 상기 제1 페이지를 복사한 제2 페이지를 생성하여 상기 제2 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하며, 다음 체크 포인트 구간까지 상기 제1 페이지의 속성을 라이트(write)로 변경하여 유지하고,
체크 포인트 시 상기 제2 페이지를 제거하고 체크 포인트 테이블을 초기화하며, 라이트 속성이었던 상기 제1 페이지를 읽기 전용으로 설정하고, 오류 발생시 상기 메인 메모리 영역 내에서 상기 제2 페이지의 데이터를 상기 제1 페이지의 데이터로 업데이트하고,
상기 파일 시스템 영역은,
파일 시스템의 파일에 대한 메모리 버퍼 및 파일 저장부를 포함하며, 시스템이 동작하는 동안에 업데이트된 파일 데이터와 메타 데이터에 대한 새로운 버전 데이터를 포함하며, 체크 포인팅 때 메모리 버퍼에 있는 새 버전의 데이터 블록과 메타 데이터를 파일에 적용하고, 오류 발생시 메인 메모리 버퍼에 있는 데이터를 삭제하여 롤백하는, 전자 장치.A nonvolatile new memory including a main memory area and a file system area; And
And a processor for performing checkpointing on the main memory area and the file system area according to a predetermined condition,
Wherein the main memory area comprises:
And a checkpoint table for writing page information in which the data in the main memory area is changed,
The processor comprising:
Initializing the checkpoint table, setting an attribute of a page of the main memory area as read-only, and updating data of a first page of the main memory area when the first page is updated, Writes information of a page to the checkpoint table, generates a second page in which the first page is copied to roll back, writes information of the second page to the checkpoint table, The attribute of the first page is changed to write and maintained,
The second page is deleted at the checkpoint, the checkpoint table is initialized, the first page which was a write attribute is set to be read-only, and the data of the second page is read from the first page Lt; RTI ID = 0.0 > data,
Wherein the file system area comprises:
A memory buffer for a file in a file system, and a file storage unit, and includes new version data for updated file data and metadata during operation of the system, and at the time of checkpointing, a new version of data block and metadata Applies the data to the file, and erases the data in the main memory buffer when an error occurs, thereby rolling back the electronic device.
상기 프로세서는,
상기 연산 수행시 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 메인 메모리 영역에서 상기 제2 페이지를 상기 제1 페이지로 롤백하거나 파일 시스템 영역에서 메모리 파일 버퍼에 체크 포인트 후 연산 수행 동안 쌓인 새로운 데이터를 제거하여 최근의 체크 포인트 시점으로 롤백하는, 전자 장치.The method according to claim 1,
The processor comprising:
If an error occurs in the execution of the operation, the second page is rolled back to the first page in the main memory area based on the information written in the checkpoint table, or an operation is performed after checkpointing to the memory file buffer in the file system area And rolls back to the latest checkpoint time.
상기 프로세서는,
상기 메인 메모리 영역에 대한 체크 포인팅 수행시 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 상기 제2 페이지를 상기 제1 페이지로 롤백하는, 전자 장치.The method according to claim 1,
The processor comprising:
And rolls back the second page to the first page based on information written to the checkpoint table when an error occurs in performing checkpointing on the main memory area.
상기 프로세서는,
상기 메인 메모리 영역에 대해 기 설정된 조건에 따라 체크 포인팅을 수행하고, 상기 체크 포인트 테이블을 초기화하며, 상기 메인 메모리 영역의 페이지의 속성을 읽기 전용으로 설정하는, 전자 장치.The method according to claim 1,
The processor comprising:
Performing checkpointing according to a predetermined condition for the main memory area, initializing the checkpoint table, and setting a property of a page of the main memory area as read-only.
상기 파일 저장부는,
기 저장된 데이터 블록을 포함하며,
상기 프로세서는,
상기 데이터 블록이 업데이트되는 경우 상기 업데이트된 데이터 블록을 상기 메모리 버퍼에 저장함으로써 체크 포인팅 수행 전까지 상기 메모리 버퍼는 새로운 데이터를 포함하고, 상기 파일 저장부는 이전의 데이터를 포함하여 멀티 버전의 데이터를 포함하는, 전자 장치.The method according to claim 1,
The file storage unit stores,
A pre-stored block of data,
The processor comprising:
Wherein when the data block is updated, the memory buffer stores new data by storing the updated data block in the memory buffer until checkpointing is performed, and the file storage unit stores multi-version data including previous data , An electronic device.
상기 프로세서는,
상기 파일 시스템 영역에 대해 체크 포인팅을 수행할 때, 메모리 버퍼에서 상기 업데이트된 메타 데이터와 데이터 블록을 포함하는 페이지 모두를 상기 파일 저장부에 플러싱하는, 전자 장치.6. The method of claim 5,
The processor comprising:
And flushes to the file storage all of the pages including the updated metadata and data blocks in the memory buffer when performing checkpointing on the file system area.
상기 프로세서는,
상기 파일 시스템 영역에 대한 체크 포인팅 수행시 오류가 발생하는 경우, 상기 업데이트된 데이터 블록을 포함하는 페이지 모두를 상기 파일 저장부에 롤포워드(roll forward)하는, 전자 장치.6. The method of claim 5,
The processor comprising:
And rolls all pages including the updated data block to the file storage if an error occurs in performing checkpointing on the file system area.
상기 기 설정된 조건은,
기 설정된 주기, 상기 데이터의 변경이 기 설정된 횟수를 만족하는 조건 중 적어도 하나인, 전자 장치.The method according to claim 1,
Preferably,
A predetermined period, and a condition that a change in the data satisfies a preset number of times.
상기 메인 메모리 영역의 데이터가 변경된 페이지 정보를 라이팅하는 체크 포인트 테이블을 초기화하고, 상기 메인 메모리 영역의 페이지의 속성(attribute)을 읽기 전용(read-only)으로 설정하는 메인 메모리 영역 체크 포인팅 단계;
상기 파일 시스템 영역에 대해 체크 포인팅을 수행하는 파일 시스템 영역 체크 포인팅 단계;
연산을 수행하는 단계;를 포함하고,
상기 연산을 수행하는 단계는,
상기 메인 메모리 영역의 제1 페이지에 대한 데이터 업데이트가 요청되는 경우, 상기 제1 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하고, 롤백(roll back)을 위해 상기 제1 페이지를 복사한 제2 페이지를 생성하여 상기 제2 페이지의 정보를 상기 체크 포인트 테이블에 라이팅하며, 다음 체크 포인트 구간까지 상기 제1 페이지의 속성을 라이트(write)로 변경하여 유지하고, 오류 발생시 상기 메인 메모리 영역 내에서 상기 제2 페이지의 데이터를 상기 제1 페이지로 업데이트하고,
상기 파일 시스템 영역은,
파일 시스템의 파일에 대한 메모리 버퍼 및 파일 저장부를 포함하며, 시스템이 동작하는 동안에 업데이트된 파일 데이터와 메타 데이터에 대한 새로운 버전 데이터를 포함하며,
상기 메인 메모리 영역 체크 포인팅 단계는,
상기 제2 페이지를 제거하고 체크 포인트 테이블을 초기화하며, 라이트 속성이었던 상기 제1 페이지를 읽기 전용으로 설정하며,
상기 파일 시스템 영역 체크 포인팅 단계는,
상기 메모리 버퍼에 있는 새 버전의 데이터 블록과 메타 데이터를 파일에 적용하고, 오류 발생시 메인 메모리 버퍼에 있는 데이터를 삭제하여 롤백하는, 전자 장치의 제어 방법.A control method of an electronic device including a non-volatile new memory including a main memory area and a file system area,
A main memory area checkpointing step of initializing a checkpoint table for writing page information in which data in the main memory area is changed, and setting an attribute of a page of the main memory area as read-only;
A file system area checkpointing step of performing checkpointing on the file system area;
And performing an operation,
Wherein performing the operation further comprises:
If the update of data for the first page of the main memory area is requested, writing the information of the first page to the checkpoint table, and if the second page copied the first page for roll back, Writes the information of the second page to the checkpoint table, changes the attribute of the first page to a write until the next checkpoint interval, and maintains the attribute of the second page in the main memory area when the error occurs, Updating the data of the page to the first page,
Wherein the file system area comprises:
A memory buffer for a file in a file system, and a file storage, and includes new version data for updated file data and metadata during operation of the system,
Wherein the main memory area checkpointing step comprises:
Removing the second page, initializing a checkpoint table, setting the first page that was a write attribute to be read only,
The file system area checkpointing step comprises:
Applying a new version of the data block and metadata in the memory buffer to the file and deleting data in the main memory buffer when an error occurs to roll back.
상기 연산을 수행하는 단계는,
상기 연산 수행시 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 메인 메모리 영역에서 상기 제2 페이지를 상기 제1 페이지로 롤백하거나 파일 시스템 영역에서 메모리 파일 버퍼에 체크 포인트 후 연산 수행 동안 쌓인 새로운 데이터를 제거하여 최근의 체크 포인트 시점으로 롤백하는, 전자 장치의 제어 방법.10. The method of claim 9,
Wherein performing the operation further comprises:
If an error occurs in the execution of the operation, the second page is rolled back to the first page in the main memory area based on the information written in the checkpoint table, or an operation is performed after checkpointing to the memory file buffer in the file system area And rolling back to the latest checkpoint time.
상기 메인 메모리 영역 체크 포인팅 단계는,
상기 메인 메모리 영역에 대한 체크 포인팅 수행시 오류가 발생하는 경우, 상기 체크 포인트 테이블에 라이팅된 정보에 기초하여 상기 제2 페이지를 상기 제1 페이지로 롤백하는, 전자 장치의 제어 방법.10. The method of claim 9,
Wherein the main memory area checkpointing step comprises:
And rolls back the second page to the first page based on the information written in the checkpoint table when an error occurs in performing checkpointing on the main memory area.
상기 메인 메모리 영역 체크 포인팅 단계는,
상기 메인 메모리 영역에 대해 기 설정된 조건에 따라 체크 포인팅을 수행하고, 상기 체크 포인트 테이블을 초기화화며, 상기 메인 메모리 영역의 페이지의 속성을 읽기 전용으로 설정하는, 전자 장치의 제어 방법.10. The method of claim 9,
Wherein the main memory area checkpointing step comprises:
Performing checkpointing according to a predetermined condition for the main memory area, initializing the checkpoint table, and setting a property of a page of the main memory area as read-only.
상기 파일 시스템 영역 체크 포인팅 단계는,
상기 파일 저장부에 기 저장된 데이터 블록이 업데이트되는 경우 상기 업데이트된 데이터 블록을 상기 메모리 버퍼에 저장함으로써 체크 포인팅 수행 전까지 상기 메모리 버퍼는 새로운 데이터를 포함하고, 상기 파일 저장부는 이전의 데이터를 포함하여 멀티 버전의 데이터를 포함하는, 전자 장치의 제어 방법.10. The method of claim 9,
The file system area checkpointing step comprises:
When the data block previously stored in the file storage unit is updated, the memory buffer stores the updated data block in the memory buffer until the checkpointing is performed, and the file storage unit stores new data, including the previous data, Version of the data.
상기 파일 시스템 영역 체크 포인팅 단계는,
상기 파일 시스템 영역에 대해 체크 포인팅을 수행할 때, 상기 메모리 버퍼에서 상기 업데이트된 메타 데이터와 데이터 블록을 포함하는 페이지 모두를 상기 파일 저장부에 플러싱하는, 전자 장치의 제어 방법.14. The method of claim 13,
The file system area checkpointing step comprises:
And flushes to the file storage all of the pages including the updated metadata and data blocks in the memory buffer when performing checkpointing on the file system area.
상기 파일 시스템 영역 체크 포인팅 단계는,
상기 파일 시스템 영역에 대한 체크 포인팅 수행시 오류가 발생하는 경우, 상기 업데이트된 데이터 블록을 포함하는 페이지 모두를 상기 파일 저장부에 롤포워드(roll forward)하는, 전자 장치의 제어 방법.14. The method of claim 13,
The file system area checkpointing step comprises:
And rolls all pages including the updated data block to the file storage when an error occurs in performing checkpointing on the file system area.
상기 파일 시스템 영역 체크 포인팅 단계는,
상기 메인 메모리 영역의 상기 제1 페이지 및 상기 제2 페이지에 대한 체크 포인팅이 완료된 후 상기 메모리 버퍼의 데이터 블록을 상기 파일 저장부에 플러싱하는, 전자 장치의 제어 방법.
10. The method of claim 9,
The file system area checkpointing step comprises:
And flushes the data block of the memory buffer to the file storage after the checkpointing of the first page and the second page of the main memory area is completed.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/693,961 US20180067817A1 (en) | 2016-09-07 | 2017-09-01 | Electronic device and method of controlling the same |
EP17189290.4A EP3293635B1 (en) | 2016-09-07 | 2017-09-04 | Electronic device and method of controlling the same |
CN201710804322.5A CN107797885B (en) | 2016-09-07 | 2017-09-07 | Electronic device and control method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160114917 | 2016-09-07 | ||
KR1020160114917 | 2016-09-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180027993A KR20180027993A (en) | 2018-03-15 |
KR101969799B1 true KR101969799B1 (en) | 2019-04-17 |
Family
ID=61659797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170048313A KR101969799B1 (en) | 2016-09-07 | 2017-04-14 | Electronic device and controlling method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101969799B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102413965B1 (en) * | 2020-02-27 | 2022-06-27 | 서울대학교산학협력단 | Memory efficient fork-based checkpointing method and apparatus thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100800044B1 (en) | 2006-08-04 | 2008-01-31 | 한국과학기술정보연구원 | Method for automatic checkpoint file management |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8224780B2 (en) * | 2010-06-15 | 2012-07-17 | Microsoft Corporation | Checkpoints for a file system |
KR102031606B1 (en) * | 2013-07-31 | 2019-10-14 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | Versioned memory implementation |
KR102637757B1 (en) * | 2016-06-01 | 2024-02-19 | 삼성전자 주식회사 | Electronic apparatus and method for journaling file data thereof |
-
2017
- 2017-04-14 KR KR1020170048313A patent/KR101969799B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100800044B1 (en) | 2006-08-04 | 2008-01-31 | 한국과학기술정보연구원 | Method for automatic checkpoint file management |
Also Published As
Publication number | Publication date |
---|---|
KR20180027993A (en) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3724764B1 (en) | Write-ahead style logging in a persistent memory device | |
US10241873B2 (en) | Headstart restore of first volume to a second volume | |
US8433870B2 (en) | Multiple incremental virtual copies | |
US9811422B2 (en) | Head start population of an image backup | |
US8464010B2 (en) | Apparatus and method for data backup | |
US9720786B2 (en) | Resolving failed mirrored point-in-time copies with minimum disruption | |
US20060139697A1 (en) | Storage system with multiple copy targeting | |
JP5669823B2 (en) | System recovery method using change tracking | |
US11221927B2 (en) | Method for the implementation of a high performance, high resiliency and high availability dual controller storage system | |
US9501364B1 (en) | Hybrid image backup of a source storage | |
JP4419884B2 (en) | Data replication apparatus, method, program, and storage system | |
CN111158858A (en) | Cloning method and device of virtual machine and computer readable storage medium | |
CN112119380A (en) | Parity recording with bypass | |
US8131958B2 (en) | Storage system, storage device, and data updating method using a journal volume | |
KR101969799B1 (en) | Electronic device and controlling method thereof | |
US20150378836A1 (en) | Data Backup Recovery | |
KR100234634B1 (en) | I/o device with test/recovery function | |
CN107797885B (en) | Electronic device and control method thereof | |
US10423494B2 (en) | Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage | |
US10437687B2 (en) | Filtering a directory enumeration of a directory of an image backup | |
US7890798B1 (en) | Computer cluster with second-node instance of application having access to state snapshot of first-node instance of application | |
JP2009129283A (en) | Data storage device, data backup method and data backup program | |
JPH09269904A (en) | Input/output control method provided with check recovery function and input/output controller provided with check recovery function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |