KR20180028570A - Multi core system and method of driving the same - Google Patents

Multi core system and method of driving the same Download PDF

Info

Publication number
KR20180028570A
KR20180028570A KR1020160115413A KR20160115413A KR20180028570A KR 20180028570 A KR20180028570 A KR 20180028570A KR 1020160115413 A KR1020160115413 A KR 1020160115413A KR 20160115413 A KR20160115413 A KR 20160115413A KR 20180028570 A KR20180028570 A KR 20180028570A
Authority
KR
South Korea
Prior art keywords
core
code
memory
data
shared memory
Prior art date
Application number
KR1020160115413A
Other languages
Korean (ko)
Inventor
채성민
Original Assignee
현대오트론 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대오트론 주식회사 filed Critical 현대오트론 주식회사
Priority to KR1020160115413A priority Critical patent/KR20180028570A/en
Publication of KR20180028570A publication Critical patent/KR20180028570A/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare

Abstract

The present invention relates to a multi core system. More specifically, the multi core system comprises: a first core configured to execute a first code to generate first processing data; a first data bus configured to distribute and input the generated first processing data to a first local memory and a first sharing memory; a second core configured to execute a second code to generate second processing data; a second data bus configured to distribute and input the second processing data to a second local memory and a second sharing memory; and a first backup code memory configured to pre-store the second code. Therefore, the multi core system increases driving stability.

Description

멀티 코어 시스템 및 이의 구동 방법{Multi core system and method of driving the same}Multi-core system and method of driving same

본 발명은 멀티 코어 시스템 및 이의 구동 방법에 관한 것으로, 보다 상세하게는 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제1 코어가 제2 코어가 실행하는 제2 코드와 제2 코드를 실행하여 생성된 제2 처리 데이터를 각각 제1 백업 코드 메모리와 제2 공유 메모리로부터 입력받아 제2 코드를 실행하는 멀티 코어 시스템 및 이의 구동 방법에 관한 것이다.The present invention relates to a multicore system and a method of driving the same, and more particularly, to a system and method for operating a multicore system, Core system and a method for driving the same, and a method for executing the second code by receiving the generated second processing data from the first backup code memory and the second shared memory, respectively.

단일 코어 기반의 시스템은 추가 성능 향상과 저전력 구현의 한계로 인하여, 멀티 코어 시스템 구조의 점유율이 증가하고 있고, 앞으로도 멀티 코어 시스템이 대세로 자리 잡게 될 것이다.Due to the limitations of additional performance enhancement and low power implementation, the share of multi-core system architecture is increasing, and multi-core system will become popular in the future.

멀티 코어 시스템 환경에서 중요한 것은 다수의 코어 중에서 일부 코어에 고장이 발생하더라도 고장이 발생하지 않은 다른 코어를 이용하여 지속적으로 시스템을 구동시키는 구동 안정성이다.What is important in a multicore system environment is the stability of driving the system continuously by using other cores that fail in some cores even if some cores fail.

즉, 멀티 코어 시스템은 다수의 코어 중 일부 코어에 고장이 발생하여도, 해당 고장 코어를 시스템에서 차단하여 나머지 정상 코어들에게 영향이 가지 않도록 한다면 정상적으로 동작할 수 있다. 따라서, 멀티 코어 시스템은 정확한 고장 진단을 통해 고장 코어를 판별하고, 여분의 정상 코어로 대체하거나 고장 코어를 차단하여 다소의 성능감소를 감안한 채 구동 안정성을 유지하게 된다.That is, even if a failure occurs in some of the cores of a plurality of cores, the multi-core system can operate normally if the corresponding cores are blocked in the system and the remaining cores are not affected. Therefore, a multicore system determines the faulty core through accurate fault diagnosis, replaces it with a spare normal core, or blocks the faulty core to maintain the driving stability while taking into account some performance degradation.

이를 위하여, 다수의 코어 각각은 코드를 실행한 결과로 생성되는 처리 데이터를 로컬 메모리와 공유 메모리에 각각 저장하게 된다. 즉, 일부의 코어에 고장이 발생하는 경우, 고장이 발생하지 않은 코어에서 고장이 발생한 코어를 대신해 코드를 실행하기 위하여 공유 메모리에 고장이 발생한 코어가 고장 전까지 생성한 처리 데이터를 저장한다.To this end, each of the plurality of cores stores processing data generated as a result of executing the code in the local memory and the shared memory, respectively. That is, when a failure occurs in some of the cores, the processing data generated until the failure of the core in which the failure occurs in the shared memory is stored to execute the code in place of the core in which the failure has occurred in the core in which the failure has not occurred.

이에 따라, 다수의 코어는 처리 데이터를 공유하기 위하여 코드 실행 결과 생성된 처리 데이터를 로컬 메모리뿐만 아니라 공유 메모리에 추가로 저장함으로써, 처리 데이터의 저장에 소요되는 코어 로드가 부가되는 문제점이 있다.Accordingly, a large number of cores have a problem in that a core load for storing processing data is added by storing the processing data generated as a result of executing the code in addition to the local memory as well as the shared memory in order to share processing data.

본 발명은 제1 코어가 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행함으로써, 제2 코어가 정상 동작을 하지 않는 경우에도 제1 코어를 통해 제2 코드를 실행할 수 있는 구동 안정성이 향상된 멀티 코어 시스템 및 이의 구동 방법을 제공하는 것을 목적으로 한다.The present invention is characterized in that the first core executes the second code stored in the first backup code memory using the second process data stored in the second shared memory based on the diagnosis result of whether or not the second core is normally operated, Core system in which the second code can be executed through the first core even when the normal operation is not performed, and a method of driving the same.

또한, 본 발명은 제1 데이터 버스를 이용하여 제1 코어가 제1 코드를 실행하여 생성한 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력함으로써, 로컬 메모리와 공유 메모리 모두에 처리 데이터를 저장하는데 소요되는 코어 로드를 감소시킬 수 있는 멀티 코어 시스템 및 이의 구동 방법을 제공하는 것을 목적으로 한다.Further, according to the present invention, the first processing data generated by executing the first code by the first core is branched and input to the first local memory and the first shared memory by using the first data bus, so that both the local memory and the shared memory Core system and a method of driving the same, which can reduce a core load required for storing processing data in a multi-core system.

또한, 본 발명은 제1 코어와 제2 코어로 진단 계산식을 각각 송신하고, 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어와 제2 코어의 정상 동작 여부를 각각 진단함으로써, 제1 코어와 제2 코어의 정상 동작 여부를 정확하게 진단할 수 있는 멀티 코어 시스템 및 이의 구동 방법을 제공하는 것을 목적으로 한다.Further, according to the present invention, diagnosis diagnosis formulas are transmitted to the first core and the second core, respectively, and whether or not the first core and the second core are normally operated based on whether or not diagnosis data corresponding to the transmitted diagnosis formula is received And a multicore system capable of accurately diagnosing whether or not the first core and the second core are operating normally, and a method of driving the same.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention which are not mentioned can be understood by the following description and more clearly understood by the embodiments of the present invention. It will also be readily apparent that the objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.

상술된 목적을 달성하기 위한 본 발명의 일 실시예에 따른 멀티 코어 시스템은 제1 코드를 실행하여 제1 처리 데이터를 생성하는 제1 코어, 생성된 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력하는 제1 데이터 버스; 제2 코드를 실행하여 제2 처리 데이터를 생성하는 제2 코어, 생성된 제2 처리 데이터를 분기시켜 제2 로컬 메모리와 제2 공유 메모리로 입력하는 제2 데이터 버스 및 제2 코드를 미리 저장하는 제1 백업 코드 메모리를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a multi-core system including a first core for executing a first code to generate first processing data, a second core for branching the generated first processing data, A first data bus for inputting to a first shared memory; A second core for executing a second code to generate second processed data, a second data bus for branching the generated second processed data and inputting to the second local memory and the second shared memory, and a second code And a first backup code memory.

일 실시예에서, 제1 코어는 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행할 수 있다.In one embodiment, the first core may execute the second code stored in the first backup code memory using the second processing data stored in the second shared memory based on the diagnostic result of whether or not the second core is operating normally.

일 실시예에서, 멀티 코어 시스템은 제1 코어와 제2 코어로 진단 계산식을 각각 송신하고, 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어와 제2 코어의 정상 동작 여부를 각각 진단하는 진단부를 더 포함할 수 있다. In one embodiment, the multicore system transmits diagnosis diagnostic formulas to the first and second cores, respectively, and determines whether normal operation of the first and second cores, based on whether diagnostic data corresponding to the transmitted diagnostic formula is received, Respectively.

일 실시예에서, 제1 코어는 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행할 수 있다.In one embodiment, if the first core is diagnosed as not functioning normally, the second core may execute the second code stored in the first backup code memory using the second process data stored in the second shared memory.

일 실시예에서, 제1 코어는 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제2 코드를 실행하여 제2 처리 데이터를 생성하고, 생성된 제2 처리 데이터를 제2 공유 메모리로 출력할 수 있다.In one embodiment, if the first core is diagnosed that the second core is not functioning normally, it may execute the second code to generate the second process data and output the generated second process data to the second shared memory have.

일 실시예에서, 제2 코어는 동작 상태가 정상 동작으로 복구되면 제1 코어로부터 출력되어 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제2 코드를 실행할 수 있다.In one embodiment, the second core may execute the second code using the second process data output from the first core and stored in the second shared memory if the operating state is restored to normal operation.

상술된 목적을 달성하기 위한 본 발명의 일 실시예에 따른 멀티 코어 시스템의 구동 방법은 제1 코어가 제1 코드를 실행하여 제1 처리 데이터를 생성하는 단계, 제1 데이터 버스가 생성된 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력하는 단계, 제2 코어가 제2 코드를 실행하여 제2 처리 데이터를 생성하는 단계, 제2 데이터 버스가 생성된 제2 처리 데이터를 분기시켜 제2 로컬 메모리와 제2 공유 메모리로 입력하는 단계, 제1 백업 코드 메모리에 제2 코드를 미리 저장하는 단계 및 제1 코어가 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행하는 단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of driving a multi-core system, the method comprising: a first core executing a first code to generate first processing data; Inputting the processed data into the first local memory and the first shared memory; executing the second code to generate second processed data; and generating second processed data in which the second data bus is generated Storing the second code in the first backup code memory in advance, and storing the second code in the first backup code memory in advance, based on the result of the diagnosis of whether the first core is operating normally or not, And executing the second code stored in the first backup code memory using the second process data stored in the shared memory.

일 실시예에서, 멀티 코어 시스템의 구동 방법은 진단부가 제1 코어와 제2 코어로 진단 계산식을 각각 송신하고, 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어와 제2 코어의 정상 동작 여부를 각각 진단하는 단계를 더 포함할 수 있다.In one embodiment, a method for driving a multicore system is one in which a diagnostic unit sends a diagnostic calculation formula to a first core and a second core, respectively, and the first and second cores, based on whether or not diagnostic data corresponding to the transmitted diagnostic formula is received, And diagnosing whether the core is operating normally.

일 실시예에서, 멀티 코어 시스템의 구동 방법은 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행하는 단계를 더 포함할 수 있다.In one embodiment, when the second core is diagnosed as not operating normally, the method of driving the multicore system executes the second code stored in the first backup code memory using the second process data stored in the second shared memory Step < / RTI >

일 실시예에서, 멀티 코어 시스템의 구동 방법은 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제1 코어가 제2 코드를 실행하여 제2 처리 데이터를 생성하고, 생성된 제2 처리 데이터를 제2 공유 메모리로 출력하는 단계를 더 포함할 수 있다.In one embodiment, when the second core is diagnosed as not operating normally, the first core executes the second code to generate the second process data, 2 shared memory.

일 실시예에서, 멀티 코어 시스템의 구동 방법은 제2 코어가 동작 상태가 정상 동작으로 복구되면 제1 코어로부터 출력되어 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제2 코드를 실행하는 단계를 더 포함할 수 있다.In one embodiment, a method of driving a multicore system includes executing a second code using second processing data output from a first core and stored in a second shared memory when a second core is restored to a normal operation state As shown in FIG.

전술한 바와 같은 본 발명에 의하면 제1 코어가 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행함으로써, 제2 코어가 정상 동작을 하지 않는 경우에도 제1 코어를 통해 제2 코드를 실행하여 구동 안정성을 향상시키는 효과가 있다.According to the present invention as described above, the first core executes the second code stored in the first backup code memory by using the second process data stored in the second shared memory based on the diagnosis result of the normal operation of the second core Thus, even when the second core does not operate normally, there is an effect of improving the driving stability by executing the second code through the first core.

또한, 본 발명에 의하면 제1 데이터 버스를 이용하여 제1 코어가 제1 코드를 실행하여 생성한 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력함으로써, 로컬 메모리와 공유 메모리 모두에 처리 데이터를 저장하는데 소요되는 코어 로드를 감소시킬 수 있는 효과가 있다.According to the present invention, the first processing data generated by executing the first code by the first core using the first data bus is branched and input to the first local memory and the first shared memory, It is possible to reduce the core load required to store the process data in all of them.

또한, 본 발명에 의하면 제1 코어와 제2 코어로 진단 계산식을 각각 송신하고, 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어와 제2 코어의 정상 동작 여부를 각각 진단함으로써, 제1 코어와 제2 코어의 정상 동작 여부를 정확하게 진단할 수 있는 효과가 있다.According to the present invention, diagnosis diagnosis formulas are transmitted to the first core and the second core, respectively, and whether normal operation of the first core and the second core is detected based on whether diagnosis data corresponding to the transmitted diagnosis formula is received Thereby, it is possible to accurately diagnose whether or not the first core and the second core normally operate.

도 1은 본 발명의 일 실시예에 따른 멀티 코어 시스템의 구성을 도시한 도면.
도 2는 본 발명의 일 실시예에 따른 멀티 코어 시스템의 제1 코어부와 제2 코어부의 데이터 흐름을 도시한 도면.
도 3 및 도 4는 본 발명의 일 실시예에 따른 멀티 코어 시스템의 제2 코어부가 정상 동작하지 않는 경우 제1 코어부의 데이터 흐름을 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 멀티 코어 시스템의 제2 코어부가 복구되는 경우 제1 코어부와 제2 코어부의 데이터 흐름을 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 멀티 코어 시스템의 구동 방법을 도시한 순서도.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing a configuration of a multicore system according to an embodiment of the present invention; Fig.
FIG. 2 illustrates a data flow of a first core portion and a second core portion of a multicore system according to an embodiment of the present invention; FIG.
FIG. 3 and FIG. 4 illustrate a data flow of a first core unit when a second core unit of a multicore system according to an embodiment of the present invention does not operate normally. FIG.
FIG. 5 illustrates a data flow of a first core part and a second core part when a second core part of a multicore system according to an embodiment of the present invention is restored; FIG.
6 is a flowchart illustrating a method of driving a multicore system according to an embodiment of the present invention.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 감지되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.The above and other objects, features, and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, which are not intended to limit the scope of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to denote the same or similar elements.

도 1은 본 발명의 일 실시예에 따른 멀티 코어 시스템의 구성을 도시한 도면이고, 도 2는 본 발명의 일 실시예에 따른 멀티 코어 시스템의 제1 코어부와 제2 코어부의 데이터 흐름을 도시한 도면이다.FIG. 1 is a diagram illustrating a configuration of a multicore system according to an embodiment of the present invention. FIG. 2 is a diagram illustrating a data flow of a first core part and a second core part of a multicore system according to an embodiment of the present invention. Fig.

도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 멀티 코어 시스템(1000)은 제1 코어부(100), 제2 코어부(200), 공유 메모리부(10) 및 진단부(20)를 포함하여 구성될 수 있다. 도 1 및 도 2에 도시된 멀티 코어 시스템(1000)은 일 실시예에 따른 것이고, 그 구성요소들이 도 1 및 도 2에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 일부 구성요소가 부가, 변경 또는 삭제될 수 있다.Referring to FIGS. 1 and 2, a multicore system 1000 according to an embodiment of the present invention includes a first core unit 100, a second core unit 200, a shared memory unit 10, 20). The multi-core system 1000 shown in FIGS. 1 and 2 is according to one embodiment, and the constituent elements thereof are not limited to the embodiments shown in FIGS. 1 and 2, , Changed or deleted.

본 발명의 일 실시예에 따른 멀티 코어 시스템(1000)의 제1 코어부(100)와 제2 코어부(200)가 정상 동작하는 경우 멀티 코어 시스템(1000)에 포함된 구성의 동작에 대해 설명하도록 한다.The operation of the configuration included in the multicore system 1000 when the first core unit 100 and the second core unit 200 of the multicore system 1000 according to an embodiment of the present invention operates normally .

제1 코어부(100)와 제2 코어부(200)는 코드를 실행하고, 실행 결과에 따른 처리 데이터를 생성하는 역할을 수행할 수 있다. 또한, 제1 코어부(100)와 제2 코어부(200) 중 어느 하나의 코어부가 정상 동작하지 않는 경우, 정상 동작하는 코어부가 정상 동작하지 않는 코어부를 대신하여 코드를 실행하고, 실행 결과에 따른 처리 데이터를 생성할 수 있다.The first core unit 100 and the second core unit 200 may execute the code and generate the process data according to the execution result. When the core part of either the first core part 100 or the second core part 200 does not operate normally, the code is executed in place of the core part in which the normally operating core part does not operate normally. Can be generated.

보다 구체적으로, 제1 코어부(100)는 제1 주 코드 메모리(110), 제1 백업 코드 메모리(120), 제1 코어(130), 제1 데이터 버스(140) 및 제1 로컬 메모리(150)를 포함하여 구성될 수 있다.More specifically, the first core unit 100 includes a first main code memory 110, a first backup code memory 120, a first core 130, a first data bus 140, and a first local memory 150).

제1 주 코드 메모리(110)는 제1 코어부(100)의 제1 코어(130)가 실행하는 제1 코드를 저장하는 역할을 수행할 수 있다. 여기서, 제1 주 코드 메모리(110)는 저장된 제1 코드가 외부 전원의 공급여부에 따라 삭제되지 않도록 비휘발성 메모리일 수 있다.The first main code memory 110 may serve to store a first code executed by the first core 130 of the first core unit 100. Here, the first main code memory 110 may be a non-volatile memory so that the stored first code is not deleted depending on whether external power is supplied or not.

제1 백업 코드 메모리(120)는 후술되는 제2 코어부(200)의 제2 코어(230)가 실행하는 제2 코드를 미리 저장하는 역할을 수행 할 수 있다. 제1 백업 코드 메모리(120)는 저장된 제2 코드가 외부 전원의 공급여부에 따라 삭제되지 않도록 비휘발성 메모리일 수 있다.The first backup code memory 120 may perform a function of previously storing a second code executed by the second core 230 of the second core unit 200, which will be described later. The first backup code memory 120 may be a non-volatile memory so that the stored second code is not deleted depending on whether external power is supplied or not.

일 실시예에서, 제1 주 코드 메모리(110)와 제1 백업 코드 메모리(120)는 하나의 비휘발성 메모리에 포함될 수 있다. 이때, 제1 주 코드 메모리(110)와 제1 백업 코드 메모리(120)가 하나의 비휘발성 메모리에 포함된 경우, 하나의 비휘발성 메모리는 서로 다른 두 영역으로 분할되어 각각 제1 주 코드 메모리(110)와 제1 백업 코드 메모리(120)로 설정될 수 있다.In one embodiment, the first main code memory 110 and the first backup code memory 120 may be included in one nonvolatile memory. In this case, when the first main code memory 110 and the first backup code memory 120 are included in one nonvolatile memory, one nonvolatile memory is divided into two different areas, 110 and the first backup code memory 120. [

제1 코어(130)는 제2 코어부(200)의 제2 코어(230)가 정상 동작하는 경우, 제1 주 코드 메모리(110)에 저장된 제1 코드를 실행하는 역할을 수행할 수 있다. 또한, 제1 코어(130)는 제1 코드를 실행하고, 실행 결과에 따른 제1 처리 데이터를 생성할 수 있다. The first core 130 may perform a first code stored in the first main code memory 110 when the second core 230 of the second core 200 operates normally. Further, the first core 130 can execute the first code and generate the first process data according to the execution result.

이때, 제1 처리 데이터는 제1 데이터 버스(140)에 입력되고, 제1 데이터 버스(140)는 입력된 제1 처리 데이터를 분기시켜 제1 로컬 메모리(150)와 공유 메모리부(10)의 제1 공유 메모리(11)로 입력할 수 있다.The first processing data is input to the first data bus 140. The first data bus 140 branches the input first processing data and outputs the first processing data to the first local memory 150 and the shared memory unit 10 Can be input to the first shared memory 11.

즉, 제1 코어(130)는 입력된 데이터를 분기시켜 제1 로컬 메모리(150)와 공유 메모리부(10)의 제1 공유 메모리(11)로 동시에 입력시키는 제1 데이터 버스(140)로 한차례 출력하는 과정을 수행할 수 있다.That is, the first core 130 is a first data bus 140 that branches the input data and simultaneously inputs the data to the first local memory 150 and the first shared memory 11 of the shared memory unit 10, And outputting the data.

이를 통해, 제1 코어(130)는 제1 처리 데이터를 제1 로컬 메모리(150)와 제1 공유 메모리(11)로 각각 별도로 출력하는 출력 과정을 두차례 수행하지 않음으로써, 제1 처리 데이터를 저장하는 과정에서 소요되는 코어 로드를 감소시킬 수 있다.Accordingly, the first core 130 does not perform the output process of separately outputting the first process data to the first local memory 150 and the first process memory 11, respectively, It is possible to reduce the required core load in the process of storing.

제2 코어부(200)는 제2 주 코드 메모리(210), 제2 백업 코드 메모리(220), 제2 코어(230), 제2 데이터 버스(240) 및 제2 로컬 메모리(250)를 포함하여 구성될 수 있다.The second core unit 200 includes a second main code memory 210, a second backup code memory 220, a second core 230, a second data bus 240 and a second local memory 250 .

제2 주 코드 메모리(210)는 제2 코어부(200)의 제2 코어(230)가 실행하는 제2 코드를 저장하는 역할을 수행할 수 있다. 여기서, 제2 주 코드 메모리(210)는 저장된 제2 코드가 외부 전원의 공급여부에 따라 삭제되지 않도록 비휘발성 메모리일 수 있다.The second main code memory 210 may serve to store a second code executed by the second core 230 of the second core unit 200. Here, the second main code memory 210 may be a non-volatile memory so that the stored second code is not deleted depending on whether external power is supplied or not.

제2 백업 코드 메모리(220)는 제1 코어부(100)의 제1 코어(130)가 실행하는 제1 코드를 미리 저장하는 역할을 수행할 수 있다. 제2 백업 코드 메모리(220)는 저장된 제1 코드가 외부 전원의 공급여부에 따라 삭제되지 않도록 비휘발성 메모리일 수 있다.The second backup code memory 220 may store the first code executed by the first core 130 of the first core unit 100 in advance. The second backup code memory 220 may be a nonvolatile memory such that the stored first code is not deleted depending on whether external power is supplied or not.

일 실시예에서, 제2 주 코드 메모리(210)와 제2 백업 코드 메모리(220)는 하나의 비휘발성 메모리에 포함될 수 있다. 이때, 제2 주 코드 메모리(210)와 제2 백업 코드 메모리(220)가 하나의 비휘발성 메모리에 포함된 경우, 하나의 비휘발성 메모리는 서로 다른 두 영역으로 분할되어 각각 제2 주 코드 메모리(210)와 제2 백업 코드 메모리(220)로 설정될 수 있다.In one embodiment, the second main code memory 210 and the second backup code memory 220 may be included in one non-volatile memory. In this case, when the second main code memory 210 and the second backup code memory 220 are included in one nonvolatile memory, one nonvolatile memory is divided into two different areas, 210 and the second backup code memory 220. [

제2 코어(230)는 제1 코어부(100)의 제1 코어(130)가 정상 동작하는 경우, 제2 주 코드 메모리(210)에 저장된 제2 코드를 실행하는 역할을 수행할 수 있다. 또한, 제2 코어(230)는 제2 코드를 실행하고, 실행 결과에 따른 제2 처리 데이터를 생성할 수 있다. The second core 230 may perform the second code stored in the second main code memory 210 when the first core 130 of the first core unit 100 operates normally. Further, the second core 230 can execute the second code and generate the second process data according to the execution result.

이때, 제2 처리 데이터는 제2 데이터 버스(240)에 입력되고, 제2 데이터 버스(240)는 입력된 제2 처리 데이터를 분기시켜 제2 로컬 메모리(250)와 공유 메모리부(20)의 제2 공유 메모리(21)로 입력할 수 있다.At this time, the second process data is input to the second data bus 240, and the second data bus 240 branches the input second process data to the second local memory 250 and the shared memory unit 20 Can be input to the second shared memory 21.

즉, 제2 코어(230)는 입력된 데이터를 분기시켜 제2 로컬 메모리(250)와 공유 메모리부(20)의 제2 공유 메모리(11)로 동시에 입력시키는 제2 데이터 버스(240)로 한차례 출력하는 과정을 수행할 수 있다.That is, the second core 230 branches the input data to the second data bus 240 that simultaneously inputs the data to the second local memory 250 and the second shared memory 11 of the shared memory unit 20, And outputting the data.

이를 통해, 제2 코어(230)는 제2 처리 데이터를 제2 로컬 메모리(250)와 제2 공유 메모리(11)로 각각 별도로 출력하는 출력 과정을 두차례 수행하지 않음으로써, 제2 처리 데이터를 저장하는 과정에서 소요되는 코어 로드를 감소시킬 수 있다.Accordingly, the second core 230 does not perform the output process of outputting the second processed data separately to the second local memory 250 and the second shared memory 11, It is possible to reduce the required core load in the process of storing.

공유 메모리부(10)는 제1 공유 메모리(11) 및 제2 공유 메모리(12)를 포함할 수 있다. 상술한 바와 같이, 제1 공유 메모리(11)는 제1 코어(130)의 제1 코드 실행 결과에 따른 제1 처리 데이터를 제1 데이터 버스(140)로부터 입력받아 저장하는 역할을 수행할 수 있다.The shared memory unit 10 may include a first shared memory 11 and a second shared memory 12. As described above, the first shared memory 11 can receive and process the first process data according to the first code execution result of the first core 130 from the first data bus 140 .

이와 유사하게, 제2 공유 메모리(21)는 제2 코어(230)의 제2 코드 실행 결과에 따른 제2 처리 데이터를 제2 데이터 버스(240)로부터 입력받아 저장하는 역할을 수행할 수 있다.Similarly, the second shared memory 21 may receive the second processed data according to the second code execution result of the second core 230 from the second data bus 240, and store the received second processed data.

진단부(20)는 제1 코어(130)와 제2 코어(230)로 각각 진단 계산식을 송신하고, 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어와 제2 코어의 정상 동작 여부를 진단하는 역할을 수행할 수 있다.The diagnostic unit 20 transmits diagnosis diagnostic formulas respectively to the first core 130 and the second core 230 and determines whether or not the first core 130 and the second core 230 And can diagnose the normal operation.

보다 구체적으로, 진단부(20)는 제1 코어(130)로 정상 동작 여부를 진단하기 위한 진단 계산식을 주기적으로 송신할 수 있다.More specifically, the diagnosis unit 20 may periodically transmit a diagnostic calculation formula for diagnosing whether the first core 130 is operating normally.

이후, 진단부(20)는 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제1 코어(130)의 정상 동작 여부를 진단할 수 있다.Then, the diagnosis unit 20 can diagnose whether or not the first core 130 is operating normally based on whether or not diagnostic data corresponding to the transmitted diagnosis formula is received.

예를 들어, 진단부(20)는 제1 코어(130)로부터 진단 데이터가 수신되지 않거나 진단 계산식에 대응하는 진단 데이터가 수신되지 않는 경우, 제1 코어(130)가 정상 동작하지 않는 것으로 진단할 수 있다.For example, when the diagnostic data is not received from the first core 130 or the diagnostic data corresponding to the diagnostic calculation formula is not received, the diagnosis unit 20 may diagnose that the first core 130 is not operating normally .

이를 위하여, 제1 코어(130)는 진단부(20)로부터 진단 계산식을 수신하는 경우, 진단 계산식을 연산하고 진단 계산식을 연산한 결과인 진단 데이터를 진단부(20)로 송신할 수 있다.For this, when receiving the diagnostic calculation formula from the diagnostic unit 20, the first core 130 may calculate the diagnostic calculation formula and transmit the diagnostic data, which is the result of the calculation of the diagnostic calculation formula, to the diagnosis unit 20. [

이와 유사하게, 진단부(20)는 제2 코어(230)로 정상 동작 여부를 진단하기 위한 진단 계산식을 주기적으로 송신할 수 있다.Similarly, the diagnosis unit 20 may periodically transmit a diagnostic calculation formula to diagnose whether the second core 230 is operating normally or not.

이후, 진단부(20)는 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 제2 코어(230)의 정상 동작 여부를 진단할 수 있다.Thereafter, the diagnosis unit 20 can diagnose whether or not the second core 230 is operating normally based on whether or not diagnostic data corresponding to the transmitted diagnosis formula is received.

예를 들어, 진단부(20)는 제2 코어(230)로부터 진단 데이터가 수신되지 않거나 진단 계산식에 대응하는 진단 데이터가 수신되지 않는 경우, 제2 코어(230)가 정상 동작하지 않는 것으로 진단할 수 있다.For example, when the diagnostic data is not received from the second core 230 or the diagnostic data corresponding to the diagnostic calculation formula is not received, the diagnosis unit 20 may diagnose that the second core 230 is not operating normally .

이를 위하여, 제2 코어(230)는 진단부(20)로부터 진단 계산식을 수신하는 경우, 진단 계산식을 연산하고 진단 계산식을 연산한 결과인 진단 데이터를 진단부(20)로 송신할 수 있다.For this, the second core 230 may transmit the diagnostic data, which is the result of the calculation of the diagnostic calculation formula and the calculation of the diagnostic calculation formula, to the diagnosis unit 20 when receiving the diagnostic calculation formula from the diagnosis unit 20. [

상술한 바와 같이, 일 실시예에 따른 진단부(20)는 하나로 구성되어 제1 코어(130)와 제2 코어(230)의 정상 동작 여부를 진단할 수 있다. 다른 실시예에 따른 진단부(20)는 제1 코어부(100)에 포함되는 제1 진단부(미도시)와 제2 코어부(200)에 포함되는 제2 진단부(미도시)를 포함할 수 있다.As described above, the diagnosis unit 20 according to one embodiment may be configured as a single unit to diagnose whether the first core 130 and the second core 230 operate normally. The diagnosis unit 20 according to another embodiment includes a first diagnosis unit (not shown) included in the first core unit 100 and a second diagnosis unit (not shown) included in the second core unit 200 can do.

이를 통해, 다른 실시예에 따른 진단부(20)는 코어부별로 개별로 구성된 제1 진단부와 제2 진단부를 이용하여 제1 코어(130)와 제2 코어(230)의 정상 동작 여부를 각각 진단할 수 있다.Accordingly, the diagnosis unit 20 according to another embodiment determines the normal operation of the first core 130 and the second core 230 using the first diagnosis unit and the second diagnosis unit, Can be diagnosed.

다음으로, 본 발명의 일 실시예에 따른 멀티 코어 시스템(1000)의 제2 코어부(200)가 정상 동작하지 않는 경우 멀티 코어 시스템(1000)에 포함된 구성의 동작에 대해 설명하도록 한다.Next, the operation of the configuration included in the multicore system 1000 will be described when the second core unit 200 of the multicore system 1000 according to an embodiment of the present invention does not operate normally.

도 3 및 도 4는 본 발명의 일 실시예에 따른 멀티 코어 시스템(1000)의 제2 코어부(200)가 정상 동작하지 않는 경우 제1 코어부(100)의 데이터 흐름을 도시한 도면이다.FIG. 3 and FIG. 4 are diagrams illustrating a data flow of the first core unit 100 when the second core unit 200 of the multicore system 1000 according to an embodiment of the present invention does not operate normally.

도 3을 참조하면, 진단부(20)는 제2 코어(230)로 진단 계산식을 송신한 뒤 진단 데이터가 수신되지 않거나 진단 계산식에 대응하는 진단 데이터가 수신되지 않는 경우, 제2 코어(230)가 정상 동작하지 않는 것으로 진단할 수 있다.3, the diagnosis unit 20 transmits a diagnostic calculation formula to the second core 230, and if the diagnostic data is not received or diagnostic data corresponding to the diagnostic calculation formula is not received, Can be diagnosed as not operating normally.

이후, 진단부(20)는 제1 코어부(100)의 제1 코어(130)로 제2 코어(230)가 정상 동작하지 않음을 알리는 제2 코어 비정상 동작 신호를 송신할 수 있다.The diagnosis unit 20 may transmit the second core abnormal operation signal to the first core 130 of the first core unit 100 to inform that the second core 230 is not operating normally.

제1 코어(130)는 진단부(20)로부터 제2 코어 비정상 동작 신호를 수신하는 경우, 제1 코드의 실행을 중단하고 제1 백업 코드 메모리(120)에 저장된 제2 코드를 실행할 수 있다.When receiving the second core abnormal operation signal from the diagnosis unit 20, the first core 130 can stop the execution of the first code and execute the second code stored in the first backup code memory 120. [

보다 구체적으로, 제1 코어(130)는 제2 코어(230)에 고장이 발생하기 전까지 제2 코어(230)가 제2 코드를 실행하여 생성한 제2 처리 데이터를 이용하여 제2 코드를 실행할 수 있다.More specifically, the first core 130 executes the second code using the second process data generated by the second core 230 executing the second code until a failure occurs in the second core 230 .

이를 위하여, 제1 코어(130)는 제2 코어(230)에서 생성되어 제2 데이터 버스(240)를 통해 제2 공유 메모리(12)에 저장된 제2 처리 데이터를 입력받을 수 있다.To this end, the first core 130 may receive second process data stored in the second shared memory 12 via the second data bus 240, which is generated in the second core 230.

즉, 제1 코어(130)는 제2 코어(230)가 정상 동작하지 않는 경우, 제2 공유 메모리(12)에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리(120)에 저장된 제2 코드를 실행할 수 있다.In other words, when the second core 230 is not operating normally, the first core 130 uses the second process data stored in the second shared memory 12 to write the second You can run the code.

이를 통해, 제2 코어(230)가 정상 동작하지 않는 경우, 제1 코어(130)가 정상 동작하지 않는 제2 코어(230)를 대신하여 제2 코드를 실행할 수 있다.Accordingly, when the second core 230 does not operate normally, the first core 130 can execute the second code in place of the second core 230 that does not operate normally.

한편, 제1 코어(130)는 제2 코드를 실행하고, 제2 코드의 실행에 따라 제2 처리 데이터를 생성할 수 있다. 이때, 제1 코어(130)가 생성한 제2 처리 데이터는 제2 공유 메모리(12)로 입력되어 제2 처리 데이터를 업데이트할 수 있다.On the other hand, the first core 130 can execute the second code and generate the second process data according to the execution of the second code. At this time, the second process data generated by the first core 130 may be input to the second shared memory 12 to update the second process data.

상술된 설명에서는 제2 코어(230)가 정상 동작하지 않는 경우, 제1 코어(130)가 제2 코드를 대신하여 실행하는 과정에 대해서만 설명하였다. 하지만, 본 발명에 따른 멀티 코어 시스템(1000)은 제1 코어(130)가 정상 동작하지 않는 경우, 제2 코어(230)가 제1 코어(130)를 대신하여 제1 코드를 실행하고 제1 코드 실행에 따라 제1 처리 데이터를 생성할 수 있다.In the above description, only the process in which the first core 130 executes the second code in the case where the second core 230 does not operate normally has been described. However, in the multicore system 1000 according to the present invention, when the first core 130 does not operate normally, the second core 230 executes the first code on behalf of the first core 130, It is possible to generate the first process data in accordance with the execution of the code.

한편, 도 4를 참조하면, 제1 코어(130)는 제2 코어(230)가 정상 동작하지 않는 경우, 제2 공유 메모리(12)에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리(120)의 제2 코드를 실행하는 과정만을 수행하지 않을 수 있다.4, if the second core 230 does not operate normally, the first core 130 may write the first data in the first backup code memory (the second core 230) using the second process data stored in the second shared memory 12 120 may not perform only the process of executing the second code.

즉, 제1 코어(130)는 제2 코어(230)가 정상 동작하지 않는 경우, 미리 설정된 주기에 따라 제2 코드와 제1 코드의 실행을 한차례씩 반복할 수 있다.That is, when the second core 230 does not operate normally, the first core 130 may repeat the execution of the second code and the first code once in a preset cycle.

이를 위해, 제1 코어(130)는 제2 코드를 실행한 이후 제1 코드를 실행하기 위하여, 제1 공유 메모리(11)에 저장된 제1 처리 데이터를 입력받고, 입력받은 제1 처리 데이터를 이용하여 제1 주 코드 메모리(110)에 저장된 제1 코드를 실행할 수 있다.To this end, the first core 130 receives the first process data stored in the first shared memory 11 to execute the first code after executing the second code, and uses the received first process data So that the first code stored in the first main code memory 110 can be executed.

이를 통해, 제1 코어(130)는 제2 코드를 실행하기 전에 제1 코드의 실행에 따라 생성된 최신의 제1 처리 데이터를 이어서 이용하여 제1 코드를 실행할 수 있다.In this way, the first core 130 can subsequently execute the first code using the latest first process data generated according to the execution of the first code before executing the second code.

다음으로, 본 발명의 일 실시예에 따른 멀티 코어 시스템(1000)의 제2 코어부(200)가 복구되는 경우 제1 코어부(100)와 제2 코어부(200)의 데이터 흐름을 도시한 도면이다.Next, data flows of the first core unit 100 and the second core unit 200 when the second core unit 200 of the multicore system 1000 according to an embodiment of the present invention is recovered FIG.

도 5를 참조하면, 진단부(20)는 정상 동작하지 않는 것으로 진단된 제2 코어(230)로 주기적으로 진단 계산식을 송신할 수 있다. 이후, 진단부(20)는 제2 코어(230)로부터 진단 계산식 대응하는 진단 데이터가 수신되는 경우, 정상 동작하지 않던 제2 코어(230)가 정상 동작하는 것으로 진단할 수 있다.Referring to FIG. 5, the diagnosis unit 20 may periodically transmit a diagnostic calculation formula to the second core 230 diagnosed as not functioning normally. Thereafter, when diagnosis data corresponding to the diagnostic calculation formula is received from the second core 230, the diagnosis unit 20 can diagnose that the second core 230, which has not normally operated, operates normally.

진단부(20)는 정상 동작하지 않던 제2 코어(230)가 정상 동작하는 것으로 진단되면, 제2 코어(230)로 제2 코어 복구 신호를 송신할 수 있다.The diagnosis unit 20 may transmit the second core recovery signal to the second core 230 if the second core 230 that has not been normally operated is diagnosed as being in normal operation.

제2 코어(230)는 진단부(20)로부터 제2 코어 복구 신호를 수신하는 경우, 제2 공유 메모리(12)로부터 제2 처리 데이터를 입력받아 제2 주 코드 메모리(210)에 저장된 제2 코드를 실행할 수 있다.The second core 230 receives the second process data from the second shared memory 12 when receiving the second core repair signal from the diagnosis unit 20 and receives the second process data from the second core memory 230, You can run the code.

이때, 제2 공유 메모리(12)에는 정상 동작하지 않던 제2 코어(230)가 정상 동작하는 것으로 진단되기 전까지 제1 코어(130)가 제2 코드를 실행하여 생성한 제2 처리 데이터가 저장될 수 있다.At this time, the second processing data generated by the first core 130 executing the second code is stored in the second shared memory 12 until the second core 230, which has not normally operated, is diagnosed as normal operation .

이후, 정상 동작하지 않던 제2 코어(230)는 복구된 후에 제1 코어(130)가 제2 코드를 실행하여 생성한 최신의 제2 처리 데이터를 이어서 이용하여 제2 코드를 실행할 수 있다.Thereafter, the second core 230, which has not normally operated, can be executed by using the latest second process data generated by the first core 130 executing the second code after the recovery.

한편, 진단부(20)는 정상 동작하지 않던 제2 코어(230)가 정상 동작하는 것으로 진단되면, 제1 코어(130)로도 제2 코어 복구 신호를 송신할 수 있다.On the other hand, the diagnosis unit 20 can transmit the second core recovery signal to the first core 130 if the second core 230, which has not normally operated, is diagnosed to be operating normally.

제1 코어(130)는 진단부(20)로부터 제2 코어 복구 신호를 수신하는 경우, 제1 공유 메모리(11)로부터 제1 처리 데이터를 입력받아 제1 주 코드 메모리(210)에 저장된 제1 코드를 실행할 수 있다.The first core 130 receives first processing data from the first shared memory 11 and receives first processing data from the first main code memory 210 when receiving the second core recovery signal from the diagnosis unit 20, You can run the code.

즉, 제1 코어(130)는 제2 코어(230)가 복구되면 제1 코어(130)의 주 실행 코드인 제1 코드를 실행할 수 있다. 이를 위해, 제1 코어(130)는 제1 공유 메모리(11)에 저장된 최신의 제1 처리 데이터를 이어서 이용하여 제1 코드를 실행할 수 있다.That is, the first core 130 can execute the first code, which is the main execution code of the first core 130, when the second core 230 is restored. To this end, the first core 130 can subsequently execute the first code using the latest first process data stored in the first shared memory 11. [

도 6은 본 발명의 일 실시예에 따른 멀티 코어 시스템의 구동 방법을 도시한 순서도이다.6 is a flowchart illustrating a method of driving a multicore system according to an embodiment of the present invention.

도 6을 참조하면, 제1 코어부의 제1 코어가 제1 주 코드 메모리에 저장된 제1 코드를 실행하여 제1 처리 데이터를 생성하고(S101), 제1 데이터 버스는 생성된 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 공유 메모리부의 제1 공유 메모리에 저장하게 된다(S201).6, the first core of the first core unit executes the first code stored in the first main code memory to generate the first process data (S101), and the first data bus transfers the generated first process data And stored in the first local memory and the first shared memory of the shared memory unit (S201).

이후, 진단부가 주기적으로 제1 코어부의 제1 코어와 제2 코어부의 제2 코어로 진단 계산식을 송신하고, 진단 계산식에 대응하는 진단 데이터의 수신 여부에 따라 제1 코어와 제2 코어의 정상 동작 여부를 진단한다(S301).Thereafter, the diagnostic unit periodically transmits the diagnosis formula to the first core of the first core unit and the second core of the second core unit, and transmits the diagnosis formula corresponding to the diagnosis formula to the normal operation of the first core and the second core (S301).

진단부로부터 제2 코어가 정상 동작하지 않음을 알리는 비정상 동작 신호가 수신되지 않으면 S101 단계로 돌아가 제1 코어가 제1 코드를 지속하여 실행한다.If the abnormality operation signal indicating that the second core is not operating normally is not received from the diagnosis unit, the process returns to step S101 and the first core continuously executes the first code.

반대로, 제2 코어를 정상 동작하지 않는 것으로 진단한 진단부로부터 제2 코어 비정상 동작 신호가 수신되면 제1 코어는 제2 공유 메모리에 저장된 제2 처리 데이터를 이용하여 제1 백업 코드 메모리에 저장된 제2 코드를 실행한다(S401).On the other hand, when the second core abnormal operation signal is received from the diagnosis unit diagnosing that the second core is not operating normally, the first core uses the second process data stored in the second shared memory to read the data stored in the first backup code memory 2 code (S401).

이를 통해, 제1 코어는 정상 동작하지 않은 제2 코어를 대신하여 제2 코드를 실행할 수 있다.Thereby, the first core can execute the second code on behalf of the second core which has not operated normally.

다음으로, 제1 코어는 제2 코드를 실행하고, 제2 코드의 실행에 따른 제2 처리 데이터를 생성하여 제2 공유 메모리로 출력함으로써 제2 처리 데이터를 제2 공유 메모리에 저장한다(S501).Next, the first core executes the second code, generates the second process data according to the execution of the second code, and outputs the second process data to the second shared memory, thereby storing the second process data in the second shared memory (S501) .

이때, 제1 코어는 제2 코드만을 실행하지 않고 미리 설정된 주기에 따라 제1 코드와 제2 코드를 반복하여 실행할 수 있다.At this time, the first core can repeatedly execute the first code and the second code according to a predetermined period without executing the second code.

이후, 진단부가 정상 동작하지 않던 제2 코어로부터 진단 계산식에 대응하는 진단 데이터를 수신하면 제2 코어가 정상 동작하는 것으로 진단한다. 이에 따라, 진단부는 정상 동작하지 않던 제2 코어가 복구됨을 알리는 제2 코어 복구 신호를 제1 코어로 송신한다(S601).Thereafter, when the diagnostic unit receives diagnostic data corresponding to the diagnostic calculation formula from the second core for which the diagnostic unit has not normally operated, it is diagnosed that the second core is operating normally. Accordingly, the diagnosis unit transmits a second core repair signal to the first core notifying that the second core that has not been normally operated is restored (S601).

진단부로부터 제2 코어가 복구됨을 알리는 제2 코어 복구 신호가 수신되지 않으면 S401 단계로 돌아가 제1 코어가 제2 코드를 지속하여 실행한다.If the second core restoration signal indicating that the second core is restored from the diagnosis unit is not received, the process returns to step S401 and the first core continuously executes the second code.

반대로, 제2 코어를 정상 동작하는 것으로 진단한 진단부로부터 제2 코어 복구 신호가 수신되면 제1 코어는 S101 단계로 돌아가 제1 공유 메모리에 저장된 제1 처리 데이터를 이용하여 제1 주 코드 메모리에 저장된 제1 코드를 실행한다.On the contrary, if the second core recovery signal is received from the diagnosis unit diagnosing that the second core is operating normally, the first core returns to step S101 and uses the first process data stored in the first shared memory to write the first core data in the first main code memory And executes the stored first code.

이를 통해, 제2 코어가 정상 동작하지 않는 경우 제1 코어가 제2 코드를 실행할 뿐만 아니라, 정상 동작하지 않던 제2 코어가 정상 동작하는 경우 제1 코어는 주 실행 코드인 제1 코드의 실행으로 돌아감으로써 멀티 코어 시스템의 안정성을 향상시킬 수 있다.Accordingly, when the second core is not operating normally, the first core not only executes the second code, but also when the second core, which did not operate normally, operates normally, the first core executes the first code as the main execution code By returning, the stability of the multicore system can be improved.

전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, But the present invention is not limited thereto.

1000 : 멀티 코어 시스템
100 : 제1 코어부
110 : 제1 주 코드 메모리 120 : 제1 백업 코드 메모리
130 : 제1 코어 140 : 제1 데이터 버스
150 : 제1 로컬 메모리
200 : 제2 코어부
210 : 제2 주 코드 메모리 220 : 제2 백업 코드 메모리
230 : 제2 코어 240 : 제2 데이터 버스
250 : 제2 로컬 메모리
10 : 공유 메모리부
11 : 제1 공유 메모리 12 : 제2 공유 메모리
20 : 진단부
1000: Multicore system
100: a first core part
110: first main code memory 120: first backup code memory
130: first core 140: first data bus
150: first local memory
200:
210: second main code memory 220: second backup code memory
230: second core 240: second data bus
250: second local memory
10: Shared memory unit
11: first shared memory 12: second shared memory
20:

Claims (10)

제1 코드를 실행하여 제1 처리 데이터를 생성하는 제1 코어;
상기 생성된 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력하는 제1 데이터 버스;
제2 코드를 실행하여 제2 처리 데이터를 생성하는 제2 코어;
상기 생성된 제2 처리 데이터를 분기시켜 제2 로컬 메모리와 제2 공유 메모리로 입력하는 제2 데이터 버스; 및
상기 제2 코드를 미리 저장하는 제1 백업 코드 메모리를 포함하고,
상기 제1 코어는
상기 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제1 백업 코드 메모리에 저장된 상기 제2 코드를 실행하는 멀티 코어 시스템.
A first core for executing a first code to generate first processing data;
A first data bus for branching the generated first processing data and inputting the first processing data to a first local memory and a first shared memory;
A second core for executing a second code to generate second processed data;
A second data bus for branching the generated second processed data and inputting to the second local memory and the second shared memory; And
And a first backup code memory for previously storing the second code,
The first core
And the second code stored in the first backup code memory is executed using the second process data stored in the second shared memory based on a diagnosis result of normal operation of the second core.
제1항에 있어서,
상기 제1 코어와 상기 제2 코어로 진단 계산식을 각각 송신하고, 상기 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 상기 제1 코어와 상기 제2 코어의 정상 동작 여부를 각각 진단하는 진단부를
더 포함하는 멀티 코어 시스템.
The method according to claim 1,
And diagnosing the normal operation of the first core and the second core based on whether diagnosis data corresponding to the transmitted diagnosis formula is received or not The diagnosis department
A further multi-core system.
제1항에 있어서,
상기 제1 코어는
상기 제2 코어가 정상 동작하지 않는 것으로 진단되면, 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제1 백업 코드 메모리에 저장된 상기 제2 코드를 실행하는 멀티 코어 시스템.
The method according to claim 1,
The first core
And executes the second code stored in the first backup code memory using the second process data stored in the second shared memory if the second core is diagnosed as not operating normally.
제1항에 있어서,
상기 제1 코어는
상기 제2 코어가 정상 동작하지 않는 것으로 진단되면, 제2 코드를 실행하여 제2 처리 데이터를 생성하고, 상기 생성된 제2 처리 데이터를 상기 제2 공유 메모리로 출력하는 멀티 코어 시스템.
The method according to claim 1,
The first core
Core system, and when the second core is diagnosed as not operating normally, executes a second code to generate second process data, and outputs the generated second process data to the second shared memory.
제4항에 있어서,
상기 제2 코어는
동작 상태가 정상 동작으로 복구되면 상기 제1 코어로부터 출력되어 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제2 코드를 실행하는 멀티 코어 시스템.
5. The method of claim 4,
The second core
Wherein the second code is output from the first core and is executed using the second process data stored in the second shared memory when the operation state is restored to a normal operation.
제1 코어가 제1 코드를 실행하여 제1 처리 데이터를 생성하는 단계;
제1 데이터 버스가 상기 생성된 제1 처리 데이터를 분기시켜 제1 로컬 메모리와 제1 공유 메모리로 입력하는 단계;
제2 코어가 제2 코드를 실행하여 제2 처리 데이터를 생성하는 단계;
제2 데이터 버스가 상기 생성된 제2 처리 데이터를 분기시켜 제2 로컬 메모리와 제2 공유 메모리로 입력하는 단계;
제1 백업 코드 메모리에 상기 제2 코드를 미리 저장하는 단계; 및
상기 제1 코어가 상기 제2 코어의 정상 동작 여부의 진단 결과에 기초하여 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제1 백업 코드 메모리에 저장된 상기 제2 코드를 실행하는 단계를 포함하는 멀티 코어 시스템의 구동 방법.
The first core executing a first code to generate first processing data;
The first data bus branching the generated first processing data and inputting the first processing data to the first local memory and the first shared memory;
The second core executing a second code to generate second processing data;
The second data bus branching the generated second process data and inputting to the second local memory and the second shared memory;
Storing the second code in advance in a first backup code memory; And
Executing the second code stored in the first backup code memory using the second processing data stored in the second shared memory based on a diagnosis result of whether or not the first core is operating normally in the first core The method comprising the steps of:
제6항에 있어서,
진단부가 상기 제1 코어와 상기 제2 코어로 진단 계산식을 각각 송신하고, 상기 송신된 진단 계산식에 대응하는 진단 데이터의 수신 여부에 기초하여 상기 제1 코어와 상기 제2 코어의 정상 동작 여부를 각각 진단하는 단계를
더 포함하는 멀티 코어 시스템의 구동 방법.
The method according to claim 6,
Wherein the diagnosing unit transmits diagnostic diagnosis formulas to the first and second cores, respectively, and determines whether or not the first and second cores operate normally based on whether or not diagnosis data corresponding to the transmitted diagnosis formula is received To diagnose
Core system.
제6항에 있어서,
상기 제2 코어가 정상 동작하지 않는 것으로 진단되면, 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제1 백업 코드 메모리에 저장된 상기 제2 코드를 실행하는 단계를
더 포함하는 멀티 코어 시스템의 구동 방법.
The method according to claim 6,
Executing the second code stored in the first backup code memory using the second process data stored in the second shared memory if the second core is diagnosed as not operating normally
Core system.
제6항에 있어서,
상기 제2 코어가 정상 동작하지 않는 것으로 진단되면, 상기 제1 코어가 제2 코드를 실행하여 제2 처리 데이터를 생성하고, 상기 생성된 제2 처리 데이터를 상기 제2 공유 메모리로 출력하는 단계를
더 포함하는 멀티 코어 시스템의 구동 방법.
The method according to claim 6,
And if the second core is diagnosed as not operating normally, the first core executes the second code to generate second process data, and outputting the generated second process data to the second shared memory
Core system.
제9항에 있어서,
상기 제2 코어가 동작 상태가 정상 동작으로 복구되면 상기 제1 코어로부터 출력되어 상기 제2 공유 메모리에 저장된 상기 제2 처리 데이터를 이용하여 상기 제2 코드를 실행하는 단계를
더 포함하는 멀티 코어 시스템의 구동 방법.
10. The method of claim 9,
And executing the second code using the second process data output from the first core and stored in the second shared memory when the second core is restored to a normal operation state
Core system.
KR1020160115413A 2016-09-08 2016-09-08 Multi core system and method of driving the same KR20180028570A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160115413A KR20180028570A (en) 2016-09-08 2016-09-08 Multi core system and method of driving the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160115413A KR20180028570A (en) 2016-09-08 2016-09-08 Multi core system and method of driving the same

Publications (1)

Publication Number Publication Date
KR20180028570A true KR20180028570A (en) 2018-03-19

Family

ID=61911246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160115413A KR20180028570A (en) 2016-09-08 2016-09-08 Multi core system and method of driving the same

Country Status (1)

Country Link
KR (1) KR20180028570A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330737A (en) * 2002-05-15 2003-11-21 Hitachi Ltd Computer system
JP2009274569A (en) * 2008-05-14 2009-11-26 Denso Corp Vehicle controlling device
JP2010218277A (en) * 2009-03-17 2010-09-30 Toyota Motor Corp Failure diagnostic system, electronic control unit, failure diagnostic method
JP2015118493A (en) * 2013-12-18 2015-06-25 三菱電機株式会社 Trace device and trace program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330737A (en) * 2002-05-15 2003-11-21 Hitachi Ltd Computer system
JP2009274569A (en) * 2008-05-14 2009-11-26 Denso Corp Vehicle controlling device
JP2010218277A (en) * 2009-03-17 2010-09-30 Toyota Motor Corp Failure diagnostic system, electronic control unit, failure diagnostic method
JP2015118493A (en) * 2013-12-18 2015-06-25 三菱電機株式会社 Trace device and trace program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
일본 공개특허공보 특개2010-218277호(2010.09.30.) 1부. *
일본 특허공보 특허 제 4030951호(2008.01.09.) 1부. *

Similar Documents

Publication Publication Date Title
JP5660798B2 (en) Information processing device
CN107430167B (en) Semiconductor device and diagnostic test method
US10394675B2 (en) Vehicle control device
JP2006293420A (en) Distributed control apparatus
CN103678031A (en) Double 2-vote-2 redundant system and method
US11544160B2 (en) IPS SOC PLL monitoring and error reporting
CN104781792A (en) Redundancy device unit and method for determining fault in industrial control system, industrial control system and industrial system comprising redundancy device unit
CN103475514B (en) Node, group system and BIOS without BMC repair and upgrade method
JP2009116642A (en) Method and program for recovering from pci bus fault
KR20180028570A (en) Multi core system and method of driving the same
JP2014186454A (en) Electronic control device for vehicle
TWI615718B (en) Computer system
JP2010244158A (en) Control device and communication management method
JP2007304972A (en) Microprocessor system
WO2018116400A1 (en) Control device, and processing method in event of failure in control device
CN110673793B (en) Storage device node event management method and system, electronic device and storage medium
JP2008129669A (en) Hardware failure recording device and method
JP4232589B2 (en) Duplex controller and its equalization mode decision method
JP2008090656A (en) Programmable controller
JP2008146222A (en) Computer failure detection system and computer failure detection method
EP3296874B1 (en) Apparatus and associated method
CN112416665B (en) Apparatus and method for detecting processor running state
JP6274947B2 (en) Abnormality diagnosis method for microprocessor of in-vehicle control device
KR20150144203A (en) Method for failure check and recovery of Protective relay
JP6546008B2 (en) Protection relay device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
E601 Decision to refuse application
E801 Decision on dismissal of amendment