KR20230101569A - 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치 - Google Patents

가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치 Download PDF

Info

Publication number
KR20230101569A
KR20230101569A KR1020210191776A KR20210191776A KR20230101569A KR 20230101569 A KR20230101569 A KR 20230101569A KR 1020210191776 A KR1020210191776 A KR 1020210191776A KR 20210191776 A KR20210191776 A KR 20210191776A KR 20230101569 A KR20230101569 A KR 20230101569A
Authority
KR
South Korea
Prior art keywords
watchdog
virtual
processor
driver
core
Prior art date
Application number
KR1020210191776A
Other languages
English (en)
Inventor
한용현
Original Assignee
현대오토에버 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대오토에버 주식회사 filed Critical 현대오토에버 주식회사
Priority to KR1020210191776A priority Critical patent/KR20230101569A/ko
Publication of KR20230101569A publication Critical patent/KR20230101569A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

멀티 코어 프로세서 등 복수의 코어를 구비한 연산 장치에 적용될 수 있는 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치가 제공된다. 본 개시의 몇몇 실시예에 따른 멀티코어 프로세서 모니터링 방법은, 상기 복수의 코어 각각에 대한 가상 워치독을 트리거링 하는 단계와, 상기 복수의 코어 각각의 가상 워치독 모두의 상태가 정상인 경우 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함한다.

Description

가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치{METHOD OF PROVIDING VIRTUAL WATCHDOG AND THE COMPUTING DEVICE WHICH THE METHOD IS APPLIED}
본 개시는 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치에 대한 것이다. 보다 자세하게는, 멀티 코어 프로세서 등 복수의 코어를 구비한 연산 장치에 적용될 수 있는 워치독의 제공 방법 및 그 방법이 적용된 연산 장치에 대한 것이다.
프로세서에 요구되는 연산량은 지속적으로 증가하고 있다. 이러한 수요를 만족시키기 위하여, 복수의 코어(core)를 포함하는 멀티코어 프로세서가 제공되고 있다.
워치독은 소프트웨어 오류로 무한루프에 빠지는 등 에러가 발생한 경우로 판단된 경우에 일정 시간이 지나면 시스템을 리셋하는 기능을 의미한다. 워치독은 각 코어의 동작을 모니터링 하여. 해당 코어에 문제가 있다고 판단할 시 하드웨어 적으로 장비를 리셋시킬 수 있다. 이에 따라, 각 코어에 일대일 매치되는 워치독이 제공되고 있다.
도 1은 예시적으로 2개의 코어를 포함하는 멀티코어 프로세서에서 워치독 기능이 동작하는 방식을 설명하기 위한 도면이다. 도 1에 도시된 바와 같이, 워치독 기능을 실행하는 소프트웨어인 제1 워치독 드라이버(111)는 제1 코어(110)에서 실행될 수 있고, 제2 워치독 드라이버(121)는 제2 코어(120)에서 실행될 수 있다. 이 때, 상술한 바와 같이, 워치독과 코어는 일대일 매치될 수 있다. 이에 따라, 도 1에는 제1 코어(110)를 위한 제1 하드웨어 워치독(112)과 제2 코어(120)를 위한 제2 하드웨어 워치독(122)이 도시되었다.
제1 코어(110)에서 실행되는 제1 워치독 드라이버(111)는 제1 하드웨어 워치독(112)을 트리거링(triggering) 할 수 있다. 또한, 제2 코어(120)에서 실행되는 제2 워치독 드라이버(121)는 제2 하드웨어 워치독(122)을 트리거링할 수 있다. 상기 트리거링은 주기적으로 수행됨으로써, 하드웨어 워치독이 타임아웃 상태가 되는 것을 방지한다. 상기 트리거링이 정상적이지 않은 경우, 하드웨어 워치독은 담당 코어가 비정상 상태에 빠진 것으로 보고 담당 코어의 리셋 제어 등 사전 정의된 에러 핸들링 프로세스를 수행하게 될 것이다.
상술된 바와 같이, 복수 코어의 각각의 워치독이 소프트웨어의 오류 여부를 감시하여 정상동작을 하지 않는다고 판단하면, 전체 시스템을 리셋하게 된다. 이렇게 멀티코어의 각각의 코어마다 하드웨어 워치독이 구성되는 구조가 종래의 멀티코어에서의 워치독 프로세서 구조이다.
따라서 멀티코어 프로세서의 경우, 증가된 코어 개수만큼 하드웨어 워치독을 추가함으로써 그만큼의 비용과 자원이 필요하게 된다. 그러나, 각 코어별로 하드웨어 워치독을 추가함으로써 발생하는 비용, 자원 소모를 줄이기 위한 기술이 존재하지 않았다.
일본 공개특허공보 제2014-191655호 (2014.10.06.)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 투입되는 리소스를 절감할 수 있는 멀티코어 프로세서의 모니터링 방법 및 그 방법이 적용된 멀티코어 프로세서 모니터링 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 멀티코어 프로세서에서 하드웨어 워치독의 수를 코어의 수 보다 적게 배치하는 방법 및 그 방법이 적용된 멀티코어 프로세서 모니터링 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 소프트웨어로 구현된 가상 워치독을 이용한 멀티코어 프로세서의 제어 방법을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 투입되는 리소스를 절감할 수 있는 오토사 플랫폼 기반 멀티코어 프로세서의 모니터링 방법 및 그 방법이 적용된 오토사 플랫폼 기반 멀티코어 프로세서 모니터링 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 오토사 플랫폼의 멀티코어 프로세서에서 하드웨어 워치독의 수를 코어의 수 보다 적게 배치하는 방법을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 프로세서 제어 방법은, 복수의 코어로 구성된 프로세서에서 수행되는 방법에 있어서, 상기 복수의 코어 각각에 대한 가상 워치독을 트리거링 하는 단계 및 상기 복수의 코어 각각의 가상 워치독 모두의 상태가 정상인 경우 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는, 상기 복수의 코어 각각의 가상 워치독 중 적어도 일부의 상태가 비정상인 경우, 상기 프로세서의 리셋 제어 신호를 출력하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 하드웨어 워치독의 개수는 상기 프로세서의 코어의 개수 미만일 수 있다. 여기서, 상기 하드웨어 워치독의 개수는 상기 프로세서의 코어의 개수와 무관하게 한 개일 수 있다.
몇몇 실시예에서, 상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는, 마스터 워치독 드라이버가 상기 복수의 코어 각각의 가상 워치독 모두의 상태가 정상인 것을 확인한 경우 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함할 수 있다. 여기서, 상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는, 마스터 워치독 드라이버가 상기 복수의 코어 각각의 가상 워치독 중 적어도 일부의 상태가 비정상인 것을 확인한 경우, 상기 프로세서의 리셋 제어 신호를 출력하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 가상 워치독을 트리거링 하는 단계는, 타이머에 의한 인터럽트가 발생되는 단계, 상기 인터럽트의 발생에 대한 응답으로, 워치독 드라이버가 상기 가상 워치독을 트리거링 하는 단계 및 상기 인터럽트의 발생에 대한 응답으로, 상기 워치독 드라이버가 마스터 워치독 드라이버에 인터럽트를 제공하는 단계를 포함할 수 있다. 여기서, 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계는, 상기 마스터 워치독 드라이버가 상기 가상 워치독 모두의 상태가 정상인지 여부를 확인하는 단계 및 상기 확인의 결과에 따라, 상기 마스터 워치독 드라이버가 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함할 수 있다. 이때, 상기 마스터 워치독 드라이버가 상기 가상 워치독 모두의 상태가 정상인지 여부를 확인하는 단계는, 상기 마스터 워치독 드라이버가 상기 워치독 드라이버에 가상 워치독의 상태 확인 메시지를 송신하는 단계 및 상기 마스터 워치독 드라이버가 상기 워치독 드라이버에 가상 워치독의 상태 확인 메시지를 수신하는 단계를 포함할 수 있다.
본 개시의 다른 실시예에 따른, 멀티 코어 프로세서 모니터링 시스템은, 워치독 드라이버를 실행하는 제1 코어, 제2 코어 및 하드웨어 워치독을 포함하되, 상기 워치독 드라이버는, 상기 제1 코어의 제1 가상 워치독을 트리거링 하는 인스트럭션, 상기 제2 코어의 제2 가상 워치독을 트리거링 하는 인스트럭션 및 상기 제1 가상 워치독 및 상기 제2 가상 워치독의 상태가 정상인 경우, 상기 하드웨어 워치독을 트리거링 하는 인스트럭션을 포함할 수 있다.
도 1은 종래의 멀티코어에서의 코어와 워치독이 1대1로 구성되는 시스템의 구성도이다.
도 2는 본 개시의 일 실시예에 따른, 멀티코어 모니터링 시스템의 구성도이다.
도 3는 본 개시의 일 실시예에 따른, 멀티코어 프로세서 모니터링 방법의 순서도이다.
도 4는 도 3을 참조하여 설명한 방법 중 가상 워치독을 트리거링 하는 단계를 보다 상세히 설명하기 위한 상세 순서도이다.
도 5는 도 3을 참조하여 설명한 방법 중 복수 코어의 가상 워치독의 상태를 판단하는 단계를 설명하기 위한 상세 순서도이다.
도 6은 본 개시의 몇몇 실시예들에서, 워치독 드라이버들이 동작하는 방식을 설명하기 위한 도면이다.
도 7은 도 3을 참조하여 설명한 방법을 보다 자세히 설명하기 위한 제1 신호 흐름도이다.
도 8은 본 개시의 몇몇 실시예들이 오토사 플랫폼 기반으로 실시될 수 있음을 설명하기 위한 오토사 플랫폼 모듈 및 워치독 스택의 도면이다.
도 9는 본 개시의 몇몇 실시예들이 오토사 플랫폼 기반으로 실시될 때 고려될 수 있는 워치독 스택의 소프트웨어 계층도이다.
도 10은 도 3 및 도 9를 참조하여 설명한 방법을 보다 자세히 설명하기 위한 제2 신호 흐름도이다.
도 11은 본 개시의 몇몇 실시예들에서, 각 코어별 타임아웃 값 세팅이 달라질 수 있음을 설명하기 위한 도면이다.
도 12는 본 개시의 다양한 실시예에 따른 장치 및/또는 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 개시의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 2는 본 개시의 일 실시예에 따른, 멀티코어 모니터링 시스템의 구성도이다.
도 2는 제1 코어(210) 및 제2 코어(220)에서의 워치독 프로세서 장치(200)를 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이고, 코어의 개수는 얼마든지 추가될 수 있다. 도 2에 도시된 바와 같이, 본 개시의 각각의 코어에서 제1 워치독 드라이버(211) 및 제2 워치독 드라이버(221) 과 제1 가상 워치독(212) 및 제2 가상 워치독(222)이 실행될 수 있다. 그리고 마스터 워치독 드라이버(230)가 모든 코어의 가상 워치독의 상태를 판단하여 상태가 정상인 경우, 최종적으로 하드웨어 워치독(240)을 트리거링할 수 있다. 어느 하나의 가상 워치독이라도 상태가 비정상인 경우, 하드웨어 워치독(240)이 시스템을 리셋 할 수 있다. 한편, 도 2는 본 개시의 목적을 달성하기 위한 바람직한 실시예를 도시하고 있을 뿐이며, 필요에 따라 일부 구성요소가 추가되거나 삭제될 수 있다.
멀티코어에서 각각의 코어 마다 소프트웨어 오류를 감시하기 위하여 하드웨어 워치독(240)을 구성하는 경우, 그 만큼의 비용과 자원이 필요하게 된다. 따라서, 실질적으로 하나의 하드웨어 워치독(240)만으로 워치독 프로세서 장치(200)를 구성하는 경우, 하나의 포트만 이용하여 워치독 스택을 구성할 수 있는 바, 비용과 자원 소모를 줄일 수 있다.
이하, 도 2에 도시된 각 구성 요소에 대해 보다 구체적으로 설명하기로 한다.
워치독 드라이버는 워치독을 트리거링하는 역할을 하는 소프트웨어 모듈이다. 즉, 워치독 드라이버가 소프트웨어 오류여부를 확인하여, 소프트웨어가 정상인 경우, 워치독에 신호를 가하여 워치독이 리셋 신호를 발생하지 않도록 할 수 있다. 소프트웨어가 비정상인 경우, 워치독 드라이버가 워치독에 신호를 가하지 않아, 워치독이 이를 오류로 판단하여 시스템을 리셋 할 수 있다. 본래 워치독 드라이버는 하드웨어 워치독을 트리거링하는 역할을 하는 것이다. 하지만, 본 개시에서는 제1 가상 워치독(212) 및 제2 가상 워치독(222)을 생성하여, 제1 워치독 드라이버(211)가 제1 가상 워치독(212)을 트리거링하고, 제2 워치독 드라이버(221)가 제2 가상워치독(222)을 트리거링 하도록 하였다. 즉, 워치독 드라이버에게 기존의 하드웨어 워치독이 아닌 가상 워치독을 트리거링하는 역할을 부여하였다.
제1 가상 워치독(212)과 제2 가상 워치독(222)은 소프트웨어 상에서 생성된다. 이하에서 설명될 기능을 가지는 상기 제1 가상 워치독(212) 및 상기 제2 가상 워치독(222)은 다양한 공지된 알고리즘을 활용하여 생성될 수 있다. 가상 워치독은 복수 코어 각각의 소프트웨어 오류 여부를 판단하는 기능을 할 수 있다. 예를 들어, 제1 코어(210)의 소프트웨어에 이상이 있는 경우, 제1 워치독 드라이버(211)가 제1 가상 워치독(212)을 트리거링 하지 않게되어 타임 아웃에 도달한 상태에서, 마스터 워치독(230)이 가상 워치독의 상태를 판단하여, 어느 하나라도 이상이 있는 경우 하드웨어 워치독(240)을 트리거링 하지 않음으로써 시스템 전체를 리셋 시키도록 할 수 있다.
즉, 각각의 코어 별로 제1 가상 워치독(212) 및 제2 가상 워치독(222)이 공지된 알고리즘에 의해 생성된다. 그리고 제1 코어(210)의 제1 워치독 드라이버(211)가 제1 가상 워치독(212)을 트리거링하고, 제2 코어(220)의 제2 워치독 드라이버(221)가 제2 가상 워치독(222)을 트리거링하도록 한다. 이렇게 되면 실질적으로 하나의 하드웨어 워치독(240)만으로 멀티코어에서의 워치독 프로세서 장치(200)를 구현할 수 있게 된다.
마스터 워치독 드라이버(230)는 제1 코어(210)의 제1 가상 워치독(212) 및 제2 코어(220)의 제2 가상 워치독(222)의 상태를 확인하여, 상기 제1 가상 워치독(212) 및 상기 제2 가상 워치독(222)의 상태가 정상인 경우, 하드웨어 워치독(240)을 트리거링 할 수 있다. 마스터 워치독 드라이버(230)는 제1 가상 워치독(212) 과 제2 가상 워치독(222) 중 어느 하나의 가상 워치독이라도 비정상인 경우, 하드웨어 워치독(240) 트리거링하지 않음으로써 시스템을 리셋시키도록 할 수 있다. 여기서, 도 2의 구성도에서의 마스터 워치독 드라이버(230)는 코어 전체에 걸쳐 존재한다고 한정해서 해석해서는 안 되며, 이는 이해를 돕기 위한 것에 불과하다. 실제 마스터 워치독 드라이버(230)의 역할은 각 코어의 워치독 드라이버 중 어느 하나가 역할을 맡게 된다. 보다 구체적인 설명을 위해 도 6을 참조하여 설명하기로 한다.
도 6은 본 개시의 몇몇 실시예들에서, 워치독 드라이버들이 동작하는 방식을 설명하기 위한 도면이다. 여기서, 복수의 코어 중 어느 하나의 코어의 워치독 드라이버가 마스터 워치독 드라이버 역할을 병행하게 된다. 마스터 워치독 드라이버 역할을 병행하는 워치독 드라이버는 다양한 공지된 알고리즘을 활용하여 생성될 수 있다.
도 6의 멀티코어에서의 워치독 프로세서 장치(300)는 그 예로서, 제1 코어(310)의 제1 워치독 드라이버(312)가 마스터 워치독 드라이버 역할을 하는 경우의 예시이다. 단, 이는 예시적인 것이며, 복수의 코어 중 어느 하나의 코어의 워치독 드라이버가 마스터 워치독 드라이버 역할을 할 수 있다. 따라서 마스터 워치독 드라이버(제1 워치독 드라이버)(312)는 제2 코어의 제2 워치독 드라이버(322) 로부터 인터럽트 신호를 받게 된다. 그리고 마스터 워치독 드라이버(312)가 제1 코어(310)의 제1 가상 워치독(313) 및 제2 코어(320)의 제2 가상 워치독(323)의 상태를 판단한다. 제1 가상 워치독(313) 및 제2 가상 워치독(323)의 상태가 정상인 경우, 마스터 워치독 드라이버(312)가 하드웨어 워치독(330)을 트리거링 할 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
하드웨어 워치독(240)은 마스터 워치독 드라이버(230)가 제1 가상 워치독(212) 및 제2 가상 워치독(222)의 상태를 판단하여 모든 가상 워치독의 상태가 정상인 경우, 마스터 워치독 드라이버(230)로부터 신호를 받는다. 만일 하드웨어 워치독(240)이 마스터 워치독 드라이버(230)로부터 신호를 받지 않게 되면, 타임 아웃에 도달하여 시스템을 리셋할 수 있다. 단, 여기서 하드웨어 워치독(240)의 기능은 시스템 리셋하는 기능에 국한되지 않으며, 사용자의 임의의 설정으로 다른 기능이 추가될 수 있다.
이러한 워치독 프로세서 장치(200)는, 하나 이상의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 워치독 프로세서 장치(200)의 모든 기능은 단일 컴퓨팅 장치에서 구현될 수 있다. 다른 예로써, 워치독 프로세서 장치(200)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 여기서, 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 이러한 컴퓨팅 장치의 일례에 대해서는 추후 도 12를 참조하여 설명하기로 한다.
도 3은 본 개시의 몇몇 실시예에 따른 멀티코어 프로세서 모니터링 방법의 순서도를 도시한다. 먼저, 복수 코어 각각의 가상 워치독이 트리거링 된다(S100). 그후 복수 코어의 가상 워치독의 상태를 판단하여, 모든 가상 워치독의 상태가 정상인 경우, 하드웨어 워치독을 트리거링 할 수 있다(S400). 만일, 상기 가상 워치독 중 어느 하나라도 상태가 비정상인 경우, 하드웨어 워치독을 트리거링 하지 않음으로써 시스템이 리셋될 수 있다(S300). 여기서, 소프트웨어 오류의 종류에 따라, 사용자 임의로 시스템 리셋 외에 사용자가 정한 업무를 실행하도록 다른 기능을 추가할 수 있다. 즉, 모든 코어의 가상 워치독 중 어느 하나라도 상태가 비정상인 경우, 시스템이 리셋 되거나 혹은 사용자가 정한 다른 기능이 실행될 수 있다.
이하, 도 4 내지 도 5를 참조하여, 멀티코어 프로세서 제어방법에 대해 보다 구체적으로 설명하기로 한다. 먼저, 도 4를 참조하여 가상 워치독의 트리거링 관련 동작을 상세 설명한다.
먼저, 앞서 설명한 바와 같이 코어 별 가상 워치독이 생성될 수 있다(S110). 여기서, 가상 워치독이 생성되는 순서는 반드시 타이머에 의한 워치독 드라이버에 대한 인터럽트 발생(S120) 단계 이전일 필요는 없으며, 워치독 드라이버가 가상 워치독을 트리거링하는 단계(S130) 이전에 생성되면 된다. 즉. 도 4에 도시된 것은 가상 워치독이 생성될 수 있는 순서의 한 예시이다. 그리고 워치독 드라이버에 대한 인터럽트가 발생된다(S120). 인터럽트 신호를 받은 워치독 드라이버는 가상 워치독을 트리거링(S130)함과 동시에 또는 순차로, 마스터 워치독 드라이버에 인터럽트를 제공할 수 있다(S140). 복수의 코어 별로 상기 가상 워치독을 생성 및 트리거링 하도록 멀티코어 프로세서 제어방법을 제공함으로써, 복수의 코어 별로 소프트웨어 오류를 감시할 수 있는 효과가 있다.
도 5를 참조하면, 단계(S200)에서, 마스터 워치독 드라이버와 워치독 드라이버 간에 가상 워치독 상태 확인 신호롤 송수신할 수 있다(S210). 상기 복수의 가상 워치독의 상태의 신호를 송수신한 뒤(S210), 마스터 워치독 드라이버가 복수의 가상 워치독의 상태를 판단(S220) 하는 일련의 과정을 통해, 복수 코어의 가상 워치독 모두의 상태가 정상인지 여부를 판단하는 과정(S200)이 이루어진다.
도 7은 본 개시의 멀티코어 프로세서 제어방법의 시계열적 흐름을 나타낸 신호흐름도이다.
본 개시의 멀티코어 프로세서 제어방법(S10)의 경우, 타이머 하드웨어가 각 코어의 워치독 드라이버를 인터럽트(S11) 하는 점은 종래의 제어방법과 같다. 그러나 본 개시의 멀티코어 프로세서 제어방법은 상기 워치독 드라이버가 해당 코어에 해당되는 생성된 가상의 워치독을 트리거링(S12)함과 동시에 또는 순차로, 마스터 워치독 드라이버를 인터럽트 하는 단계(S13)가 추가된다. 그후 마스터 워치독 드라이버가 각각의 가상 워치독의 상태를 확인할 수 있다(S14). 복수 코어 각각의 가상 워치독이 모두 정상인 경우 마스터 워치독 드라이버가 실제 하드웨어 워치독을 트리거링할 수 있다(S15). 상기 가상 워치독 중 어느 하나라도 이상이 있는 경우, 시스템을 리셋할 수 있다(S16).
이하 도 8 내지 도 11을 참조하여 오토사 플랫폼에서의 멀티코어 프로세서 제어방법과 본 개시의 적용을 구체적으로 설명한다.
도 8은 오토사 플랫폼에서의 워치독 스택의 구조를 나타낸다. 오토사 플랫폼은 어플리케이션 레이어(410), 런타임 환경(420), 베이직 소프트웨어 레이어(430) 및 마이크로 컨트롤러(440) 로 이루어진다. 오토사 플랫폼에서의 워치독 스택은 워치독 매니저(431), 워치독 인터페이스(432), 외부 워치독 드라이버(433) 또는 내부 워치독 드라이버(434) 또는 외부 하드웨어 워치독(441) 또는 내부 하드웨어 워치독(442)으로 구성된다.
오토사 플랫폼에서의 멀티코어 프로세서 제어방법에 대하여 이하 설명한다.
먼저, 어플리케이션 레이어(410)의 소프트웨어 컴포넌트의 상태를 런타임 환경(420)을 거쳐 워치독 매니저(431)가 판단할 수 있다. 소프트웨어에 이상이 있는 경우, 워치독 인터페이스(432)의 추상화 과정을 거치게 된다. 이때 외부 워치독(441)의 경우, 외부 워치독 드라이버(433)를 거쳐 연결된다. 내부 워치독(442)의 경우, 내부 워치독 드라이버(434)를 거쳐 연결된다. 본 개시는 내부 워치독(442) 및 외부 워치독(441) 모두 적용될 수 있다.
도 9는 오토사 플랫폼 기반의 워치독 스택의 소프트웨어 계층도(500)를 도시한 것이다. 이하, 도 9에 도시된 각 구성 요소에 대해 설명하기로 한다.
먼저, 워치독 매니저(530)는 어플리케이션 레이어(510)의 소프트웨어 컴포넌트에서 이상 여부를 감시하여 워치독 인터페이스(540) 트리거 컨디션 신호를 보내는 역할을 하는 모듈이다.
워치독 인터페이스(540)는 워치독 매니저(530)로부터 트리거 컨디션 신호를 수신하여 추상화 과정을 거쳐 워치독 드라이버(550)로 트리거 컨디션 신호를 보내는 역할을 하는 모듈이다.
워치독 드라이버(550)는 트리거 컨디션 신호를 수신한 뒤, 가상 워치독을 트리거링할 수 있다. 예를들어, 도 9의 워치독 스택(500)의 경우, 제1 코어(570)의 워치독 드라이버(550)는 제1 코어(570)의 생성된 가상 워치독(551)을 트리거링할 수 있다. 또한, 제2 코어(580)의 워치독 드라이버(550)는 제2 코어(580)의 생성된 가상 워치독(552)을 트리거링할 수 있다.
하드웨어 워치독(560)은 마스터 워치독 드라이버(553)로부터 트리거링 신호를 받지 않은 경우, 시스템을 리셋할 수 있다. 단, 여기서 하드웨어 워치독(560)의 기능은 시스템 리셋하는 기능에 국한되지 않으며, 사용자의 임의의 설정으로 다른 기능이 추가될 수 있다.
오토사 플랫폼 기반의 멀티코어에서 각각의 코어 마다 소프트웨어 오류를 감시하기 위하여 하드웨어 워치독(560)을 구성하는 경우, 그 만큼의 비용과 자원이 필요하게 된다. 따라서, 실질적으로 하나의 하드웨어 워치독(560)만으로 워치독 스택을 구성하는 경우, 하나의 포트만 이용하여 워치독 스택을 구성할 수 있는 바, 비용과 자원 소모를 줄일 수 있다.
여기서, 도 9의 소프트웨어 계층도(500)에서의 워치독 매니저(530), 워치독 인터페이스(540), 워치독 드라이버(550) 및 마스터 워치독 드라이버(553)는 코어 전체에 걸쳐 존재한다고 한정해서 해석해서는 안 되며, 이는 이해를 돕기 위한 것에 불과하다.
도 10의 오토사 플랫폼 기반의 멀티코어 프로세서 제어방법의 신호흐름도를 참조하여 설명한다.
본 개시의 워치독 프로세서 제어방법(S20)은, 워치독 매니저가 감시 조건을 모니터링하여 워치독 인터페이스에게 트리거링 조건을 제시할 수 있다(S21). 워치독 인터페이스는 이를 추상화하여 다시 워치독 드라이버에 해당 조건을 제시할 수 있다(S22). 그 후 해당 코어의 타이머 하드웨어가 해당 코어의 워치독 드라이버에게 인터럽트를 건다(S23).
상기 워치독 드라이버가 해당 코어에 해당되는 생성된 가상의 워치독을 트리거링(S24)함과 동시에, 마스터 워치독을 인터럽트 하는 단계(S25)가 추가된다. 그후 마스터 워치독 드라이버가 각각의 가상 워치독 상태를 확인할 수 있다(S26). 전체 가상 워치독이 정상인 경우 하드웨어 워치독을 트리거링 할 수 있다(S27). 상기 가상 워치독 중 어느 하나라도 이상이 있는 경우, 시스템을 리셋 할 수 있다(S28).
도 11은 각 코어별 가상 워치독의 타임아웃이 용도에 따라 다르게 설정될 수 있음을 나타낸 그래프이다. 해당 그래프와 관련하여 가상 워치독의 상태 변화 프로세스를 이하 설명한다. 먼저, 각각의 가상 워치독은 Counter value를 가지며, 시간에 따라 상기 각각의 가상 워치독의 Counter value가 증가하게 된다. Counter value가 타임 아웃 값에 이르기 전에 해당 코어의 워치독 드라이버로 부터의 트리거링이 있는 경우, 해당 코어의 가상 워치독의 카운팅이 초기화 된다. 소프트웨어에 오류가 발생하여 워치독 드라이버로부터의 트리거링 신호가 가상 워치독으로 수신되지 않는 경우, counter value가 타임 아웃에 도달하게 되어, 가상 워치독의 상태가 비정상이 된다.
도 11의 (a) 그래프는 제1 코어의 제1 가상 워치독의 시간에 따른 Counter value를 나타낸 예시이다. 제1 가상 워치독은 제1 워치독 드라이버로부터 T1의 주기로 트리거링을 받는다. Counter value 값이 Value1에 도달하기 전에 제1 워치독 드라이버로부터 트리거링이 일어나면, Counter value 가 타임 아웃에 도달하지 않는다. 따라서 제1 가상 워치독은 정상 상태를 유지한다.
도 11의 (b) 그래프는 제2 코어의 제2 가상 워치독의 시간에 따른 Counter value를 나타낸 예시이다. 제2 가상 워치독은 제2 워치독 드라이버로부터 T2의 주기로 트리거링을 받는다. 마찬가지로, Counter value 값이 Value2에 도달하기 전에 제2 워치독 드라이버로부터 트리거링이 일어나면, 타임 아웃에 도달하지 않는다. 따라서 제2 가상 워치독은 정상 상태를 유지한다.
즉, 각각의 코어별로 가상 워치독의 트리거링 주기와 타임아웃 값은 달라질 수 있다. 여기서, 각 코어별 가상 워치독의 타임아웃은 OS 모듈에서 제공하는 OScounter를 기준으로 한다. OsCounter는 워치독 매니저에서 기 사용되는 값으로서, 가상 워치독에도 사용이 가능하다. 트리거링 주기와 타임아웃의 크기에 따른 멀티코어 프로세서 제어방법은 반드시 도 11의 그래프로 한정되지 않으며, 이는 본 개시의 일 실시예에 불과하다.
몇몇 실시예에서, 각각의 코어 별로 신호의 주기는 달라질 수 있다. 나아가 신호는 주기적이거나 비 주기적일 수 있다. 예를 들어, 각각의 코어별로 인터럽트 신호의 주기는 달라질 수 있으며, 나아가 비 주기적일 수 있다. 또 다른 예로, 각각의 코어 별로 트리거링 신호의 주기는 달라질 수 있으며, 나아가 비 주기적일 수 있다.
이하, 도 12를 참조하여 본 개시의 몇몇 실시예에 따른 프로세서 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(1500)를 보다 구체적으로 설명하기로 한다.
컴퓨팅 장치(1500)는 하나 이상의 프로세서(1510), 버스(1550), 통신 인터페이스(1570), 프로세서(1510)에 의하여 수행되는 컴퓨터 프로그램(1591)을 로드(load)하는 메모리(1530)와, 컴퓨터 프로그램(1591)을 저장하는 스토리지(1590)를 포함할 수 있다. 다만, 도 12에는 본 개시의 실시예와 관련 있는 구성 요소들 만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성 요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1510)는 컴퓨팅 장치(1500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(1510)는 본 개시의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1500)는 하나 이상의 프로세서를 구비할 수 있다.
프로세서(1510)는 적어도 제1 코어 및 제2 코어를 포함하는 멀티 코어 구조의 프로세서일 수 있다. 상기 제1 코어는 제1 워치독 드라이버를 실행할 수 있다. 또한 상기 제2 코어는 제2 워치독 드라이버를 실행할 수 있다. 또한, 프로세서(1510)는 하드웨어 워치독을 포함할 수 있다. 이 때, 상기 제1 워치독 드라이버는 상기 제1 코어의 제1 가상 워치독을 트리거링 하는 인스트럭션과, 상기 제2 워치독 드라이버는 상기 제2 코어의 제2 가상 워치독을 트리거링 하는 인스트럭션과, 상기 제1 워치독 드라이버는 상기 제1 가상 워치독 및 상기 제2 가상 워치독 모두의 상태가 정상인 경우, 상기 하드웨어 워치독을 트리거링 하는 인스트럭션을 포함할 수 있다.
메모리(1530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1530)는 본 개시의 실시예들에 따른 방법을 실행하기 위하여 스토리지(1590)로부터 하나 이상의 프로그램(1591)을 로드 할 수 있다. 메모리(1530)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(1550)는 컴퓨팅 장치(1500)의 구성 요소 간 통신 기능을 제공한다. 버스(1550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(1570)는 컴퓨팅 장치(1500)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(1570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1570)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
몇몇 실시예들에 따르면, 통신 인터페이스(1570)는 생략될 수도 있다.
스토리지(1590)는 상기 하나 이상의 프로그램(1591)과 각종 데이터를 비임시적으로 저장할 수 있다.
스토리지(1590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1591)은 메모리(1530)에 로드 될 때 프로세서(1510)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(1510)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
위와 같은 경우, 컴퓨팅 장치(1500)를 통해 본 개시의 몇몇 실시예에 따른 워치독 프로세서 장치가 구현될 수 있다.
지금까지 도 1 내지 도 12을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 명세서의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 12을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (10)

  1. 복수의 코어로 구성된 프로세서에서 수행되는 방법에 있어서,
    상기 복수의 코어 각각에 대한 가상 워치독을 트리거링 하는 단계; 및
    상기 복수의 코어 각각에 대한 가상 워치독 모두의 상태가 정상인 경우 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함하는,
    프로세서 제어 방법.
  2. 제1항에 있어서,
    상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는,
    상기 복수의 코어 각각의 가상 워치독 중 적어도 일부의 상태가 비정상인 경우, 상기 프로세서의 리셋 제어 신호를 출력하는 단계를 포함하는,
    프로세서 제어 방법.
  3. 제1항에 있어서,
    상기 하드웨어 워치독의 개수는 상기 프로세서의 코어의 개수 미만인,
    프로세서 제어 방법.
  4. 제3항에 있어서,
    상기 하드웨어 워치독의 개수는 상기 프로세서의 코어의 개수와 무관하게 한 개인,
    프로세서 제어 방법.
  5. 제1항에 있어서,
    상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는,
    마스터 워치독 드라이버가 상기 복수의 코어 각각의 가상 워치독 모두의 상태가 정상인 것을 확인한 경우 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함하는,
    프로세서 제어 방법.
  6. 제5항에 있어서,
    상기 프로세서의 하드웨어 워치독을 트리거링하는 단계는,
    마스터 워치독 드라이버가 상기 복수의 코어 각각의 가상 워치독 중 적어도 일부의 상태가 비정상인 것을 확인한 경우, 상기 프로세서의 하드웨어 워치독이 리셋 제어 신호를 출력하는 단계를 포함하는,
    프로세서 제어 방법.
  7. 제1항에 있어서,
    상기 가상 워치독을 트리거링 하는 단계는,
    타이머에 의한 인터럽트가 발생되는 단계;
    상기 인터럽트의 발생에 대한 응답으로, 워치독 드라이버가 상기 가상 워치독을 트리거링 하는 단계; 및
    상기 인터럽트의 발생에 대한 응답으로, 상기 워치독 드라이버가 마스터 워치독 드라이버에 인터럽트를 제공하는 단계를 포함하는,
    프로세서 제어 방법.
  8. 제7항에 있어서,
    상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계는,
    상기 마스터 워치독 드라이버가 상기 가상 워치독 모두의 상태가 정상인지 여부를 확인하는 단계; 및
    상기 확인의 결과에 따라, 상기 마스터 워치독 드라이버가 상기 프로세서의 하드웨어 워치독을 트리거링 하는 단계를 포함하는,
    프로세서 제어 방법.
  9. 제8항에 있어서,
    상기 마스터 워치독 드라이버가 상기 가상 워치독 모두의 상태가 정상인지 여부를 확인하는 단계는,
    가상 워치독의 상태 확인 메시지를 송수신하는 단계를 포함하되,
    상기 상태 확인 메시지는, 상기 마스터 워치독 드라이버와 상기 워치독 드라이버 사이에 송수신되는 메시지인,
    프로세서 제어 방법.
  10. 워치독 드라이버를 실행하는 제1 코어;
    제2 코어; 및
    하드웨어 워치독을 포함하되,
    상기 워치독 드라이버는,
    상기 제1 코어의 제1 가상 워치독을 트리거링 하는 인스트럭션;
    상기 제2 코어의 제2 가상 워치독을 트리거링 하는 인스트럭션; 및
    상기 제1 가상 워치독 및 상기 제2 가상 워치독의 상태가 정상인 경우, 상기 하드웨어 워치독을 트리거링 하는 인스트럭션을 포함하는,
    멀티 코어 프로세서 모니터링 시스템.
KR1020210191776A 2021-12-29 2021-12-29 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치 KR20230101569A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210191776A KR20230101569A (ko) 2021-12-29 2021-12-29 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210191776A KR20230101569A (ko) 2021-12-29 2021-12-29 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치

Publications (1)

Publication Number Publication Date
KR20230101569A true KR20230101569A (ko) 2023-07-06

Family

ID=87185658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210191776A KR20230101569A (ko) 2021-12-29 2021-12-29 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치

Country Status (1)

Country Link
KR (1) KR20230101569A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191655A (ja) 2013-03-27 2014-10-06 Toyota Motor Corp マルチプロセッサ、電子制御装置、プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191655A (ja) 2013-03-27 2014-10-06 Toyota Motor Corp マルチプロセッサ、電子制御装置、プログラム

Similar Documents

Publication Publication Date Title
EP2962192B1 (en) System and method thereof to optimize boot time of computers having multiple cpus
US6112320A (en) Computer watchdog timer
US20070006048A1 (en) Method and apparatus for predicting memory failure in a memory system
US20150220411A1 (en) System and method for operating system agnostic hardware validation
US9055070B2 (en) Hardware computing system with extended calculation and method of operation thereof
JP4618263B2 (ja) ソフトウェア挙動監視装置及びソフトウェア挙動監視システム
US10776193B1 (en) Identifying an remediating correctable hardware errors
GB2504772A (en) Coprocessor providing service address space for diagnostics collection
US11768672B1 (en) Systems and methods for user-controlled deployment of software updates
CN111611086A (zh) 信息处理方法、装置、电子设备和介质
US7412597B2 (en) Computer system and booting method thereof
KR20230101569A (ko) 가상 워치독 제공 방법 및 그 방법이 적용된 연산 장치
WO2016131383A1 (zh) 一种系统的维护进程运行方法及装置
US11951999B2 (en) Control unit for vehicle and error management method thereof
US20190243658A1 (en) Restoring a processing unit that has become hung during execuation of an option rom
US11593121B1 (en) Remotely disabling execution of firmware components
US7631178B2 (en) Independent main partition reset
JP2021043725A (ja) 計算システム、計算方法及びプログラム
KR100495367B1 (ko) 소프트웨어 워치도그를 이용한 시스템 관리방법
KR20080069453A (ko) 실시간 운영 체제 시스템의 외부 입력 처리 방법
US11966750B2 (en) System-on-chip management controller
US20220188154A1 (en) Method for monitoring a task and an apparatus implementing the same method
KR100414059B1 (ko) Rtos에서의 와치독 타이머를 이용한 오동작 감시시스템 및 방법
WO2019188173A1 (ja) 半導体装置
KR20230127517A (ko) 2개 이상의 시스템간 메모리 동기화 방법 및 시스템