KR102211853B1 - 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법 - Google Patents

이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법 Download PDF

Info

Publication number
KR102211853B1
KR102211853B1 KR1020190174324A KR20190174324A KR102211853B1 KR 102211853 B1 KR102211853 B1 KR 102211853B1 KR 1020190174324 A KR1020190174324 A KR 1020190174324A KR 20190174324 A KR20190174324 A KR 20190174324A KR 102211853 B1 KR102211853 B1 KR 102211853B1
Authority
KR
South Korea
Prior art keywords
cpu
slave
cpus
error
occurred
Prior art date
Application number
KR1020190174324A
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 KR1020190174324A priority Critical patent/KR102211853B1/ko
Application granted granted Critical
Publication of KR102211853B1 publication Critical patent/KR102211853B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error 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] in a multiprocessor or a multi-core unit
    • 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/0793Remedial or corrective actions
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7835Architectures of general purpose stored program computers comprising a single central processing unit without memory on more than one IC chip

Abstract

이종의 멀티 CPU가 탑재된 시스템-온-칩 및 CPU 리부팅을 제어하는 방법이 제공된다. 시스템-온-칩(System-On-Chip, SoC)으로서, 마스터 CPU(Central Processing Unit), 그리고 적어도 두개의 슬레이브 CPU를 포함하고, 상기 마스터 CPU는, 상기 적어도 두개의 슬레이브 CPU의 동작 상태를 모니터링하고, 모니터링 결과에 기초하여 오류가 발생한 슬레이브 CPU를 개별적으로 리셋(Reset)한다.

Description

이종의 멀티 CPU가 탑재된 시스템-온-칩 및 CPU 리부팅을 제어하는 방법{SYSTEM-ON-CHIP WITH HETEROGENEOUS MULTI-CPU AND METHOD FOR CONTROLLING REBOOTING OF CPU}
본 발명은 이종의 멀티 CPU가 탑재된 시스템-온-칩(System-on-Chip, SoC) 및 중앙 처리 장치(Central Processing Unit, 이하, 'CPU'로 통칭함) 리부팅을 제어하는 방법에 관한 것으로서, 보다 자세하게는 복구가 불가능한 시스템 오류가 발생한 CPU를 리부팅하는 기술에 관한 것이다.
단일 시스템-온-칩(System-on-Chip, SoC)상에 다수의 CPU를 지원하는 경우가 증가하고 있다. 이러한 시스템은 동일한 CPU가 여러개 존재하는 대칭형 다중 처리(Symmetric Multi-Processing, SMP)와 다수의 이기종(Heterogeneous) CPU로 구성된 비대칭형 다중 처리(Asymmetric Multi-Processing, AMP)로 구분된다.
대칭형 다중 처리(SMP)의 경우, 주로 하나의 운영 체제(Operating System, OS)가 시스템-온-칩(SoC) 상의 모든 CPU를 점유하여 각 CPU에 작업을 분산시켜 처리하기 때문에 일반적인 작업에 대해 전반적인 처리 성능을 향상시킬 수 있다.
반면, 비대칭형 다중 처리(AMP)의 경우, 각각의 CPU가 서로 다른 특정 작업을 전담하여 처리한다. 예를들어, 특정 CPU에 그래픽 처리(graphic processing)나 디지털 신호 처리(digital signal processing)와 같은 작업을 전담시켜 범용 작업에 사용되는 CPU의 부하를 줄일 수 있다.
각각의 CPU 상에서 동작하는 운영 체제(OS)는 자신이 운영하는 CPU 외의 다른 CPU 및 그 위에서 동작하는 다른 운영 체제(OS)들의 동작 상황이나 상태를 알지 못한다.
또한, 일반적으로 운영 체제(OS)는 특정 동작을 수행함에 있어 다른 CPU 및 그 위에서 동작하는 다른 운영 체제(OS)들의 동작 상황이나 상태를 고려하여 동작하지 않는다. 그런데, 이러한 동작에는 CPU를 종료하거나 재시작하는 등 전체 시스템-온-칩(SoC)에 영향을 줄 수 있는 동작이 포함되어 있다.
종래에는 다수의 이종 CPU가 독립적으로 서로 다른 운영 체제(OS)를 운용하는 시스템-온-칩(SoC) 상에서 임의의 CPU 또는 그 CPU에서 실행되는 운영 체제(OS)의 동작 상태에서 복구가 불가능한 오류가 발생하면, 전체 하드웨어의 초기화를 수행함으로써 복구를 시도한다. 따라서, 오류가 발생한 CPU 뿐만 아니라 정상적으로 동작하고 있는 다른 CPU와 그 CPU들에서 실행되는 운영 체제(OS)들을 모두 리부팅하는 결과를 초래한다.
만약, 정상적으로 동작하였음에도 리부팅하는 CPU 중에서 실시간 운영 체제(Real Time Operating System, RTOS)와 같이 실시간성을 요구하는 작업을 정상적으로 수행하는 CPU가 있거나, 혹은 우선순위가 높은 작업을 별도로 모아 수행하는 CPU가 있다면, 이러한 예기치 못한 전체 하드웨어의 초기화로 인해 발생할 수 있는 피해는 치명적이다.
본 발명이 해결하고자 하는 한 과제는 다수의 이종 CPU가 서로 독립적인 운영 체제(OS)를 실행하는 시스템-온-칩(SoC) 환경에서, 각 CPU 또는 각 CPU에서 실행되는 운영 체제(OS)의 동작 상태를 모니터링하고, 오류가 발생한 특정 CPU 또는 운영 체제(OS)만을 리부팅하여 다른 정상적인 CPU 또는 운영 체제(OS)들에 영향을 주지 않는 이종의 멀티 CPU가 탑재된 시스템-온-칩(SoC) 및 CPU 리부팅을 제어하는 방법을 제공하는 것이다.
본 발명의 한 실시예에 따르면, 시스템-온-칩(System-On-Chip, SoC)으로서, 마스터 CPU(Central Processing Unit), 그리고 적어도 두개의 슬레이브 CPU를 포함하고, 상기 마스터 CPU는, 상기 적어도 두개의 슬레이브 CPU의 동작 상태를 모니터링하고, 모니터링 결과에 기초하여 오류가 발생한 슬레이브 CPU를 개별적으로 리셋(Reset)한다.
상기 마스터 CPU는, 상기 적어도 두개의 슬레이브 CPU의 상태 정보를 지정된 메모리 장치에 기록하고, 상기 적어도 두개의 슬레이브 CPU 중 하나의 CPU에서 오류 발생이 감지되면, 상기 메모리 장치에 기록된 상태 정보에 기초하여 정상 동작 상태인 CPU와 오류 발생이 감지된 CPU를 구분할 수 있다.
상기 마스터 CPU는, 상기 오류 발생이 감지된 CPU에 할당된 물리 자원 중에서 정상적으로 동작 중인 CPU와 공유하는 물리 자원에 대한 초기화를 리셋 작업에서 제외할 수 있다.
상기 시스템-온-칩(SoC)은 상기 마스터 CPU 및 상기 적어도 두개의 슬레이브 CPU와 연결되어 전원 공급을 제어하는 전원 관리 유닛(Power Management Unit, PMU)을 더 포함하고, 상기 메모리 장치는, 상기 전원 관리 유닛의 사용자 레지스터를 포함하고, 상기 전원 관리 유닛은, 상기 마스터 CPU가 사용자 레지스터에 기록한 정보를 기초로 오류가 발생한 슬레이브 CPU를 확인하고, 상기 오류가 발생한 CPU로의 전원 공급을 차단하여 초기화를 수행한 후, 전원을 재공급하여 상기 오류가 발생한 슬레이브 CPU를 리부팅시킬 수 있다.
상기 마스터 CPU 및 상기 적어도 두개의 슬레이브 CPU는, 각각의 소프트웨어 프로그램을 서로 독립적으로 실행할 수 있다.
상기 마스터 CPU는, 상기 적어도 두개의 슬레이브 CPU와 IPC(Inter-Processor Communication) 통신을 수행하고, 상기 IPC 통신을 통하여 각각의 슬레이브 CPU로부터 동작 상태 정보를 수신하며, 상기 동작 상태 정보에 기초하여, 오류가 발생한 슬레이브 CPU를 감지할 수 있다.
상기 시스템-온-칩(SoC)은 상기 적어도 두개의 슬레이브 CPU 각각과 연결된 각각의 슬레이브 워치독(Watchdog)을 더 포함하고, 상기 각각의 슬레이브 워치독은, 연결된 슬레이브 CPU로부터 주기적으로 상기 연결된 슬레이브 CPU의 정상 동작을 알리는 얼라이브 신호를 수신하고, 상기 얼라이브 신호가 임계 시간 동안 수신되지 않으면, 상기 마스터 CPU에게 인터럽트 요청 신호를 전송하며, 상기 마스터 CPU는, 상기 인터럽트 요청 신호에 기초하여 오류가 발생한 슬레이브 CPU를 감지할 수 있다.
본 발명의 다른 실시예에 따르면, 서로 다른 복수의 CPU(Central Processing Unit)를 운용하는 시스템-온-칩(System-On-Chip, SoC)에서, CPU의 리부팅을 제어하는 방법으로서, 마스터 CPU가 적어도 두개의 슬레이브 CPU의 동작 상태를 모니터링하는 단계, 모니터링 결과에 기초하여 오류가 발생한 슬레이브 CPU를 식별하는 단계, 그리고 식별한 슬레이브 CPU를 리셋(Reset)하는 단계를 포함한다.
상기 모니터링하는 단계는, 리부트 이벤트가 발생한 슬레이브 CPU로부터 IPC(Inter-Processor Communication) 통신을 통하여 리셋 요청을 수신하고, 상기 리셋하는 단계는, 상기 슬레이브 CPU가 유휴 상태로 확인되면, 상기 리셋 요청을 전송한 슬레이브 CPU를 리셋할 수 있다.
상기 모니터링하는 단계는, 슬레이브 워치독으로부터 인터럽트 요청 신호를 수신하고, 상기 식별하는 단계는, 상기 인터럽트 요청 신호가 수신된 슬레이브 워치독에 연결되어 있는 슬레이브 CPU를 오류가 발생한 슬레이브 CPU로 식별할 수 있다.
상기 모니터링하는 단계 이후, 모니터링 결과에 기초하여 상기 적어도 두개의 슬레이브 CPU 각각의 상태 정보를 사전에 지정된 메모리 영역에 기록하는 단계를 더 포함하고, 상기 리셋하는 단계는, 상기 메모리 영역에 기록된 상태 정보에 기초하여 상기 오류가 발생한 슬레이브 CPU를 제외한 정상 상태인 슬레이브 CPU를 선별하는 단계, 그리고 선별한 정상 상태인 슬레이브 CPU와 공유하는 물리 자원에 대한 초기화를 리셋 작업에서 제외하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, 다수의 이종 CPU가 독립적으로 서로 다른 운영 체제(OS)를 운용하는 시스템-온-칩(SoC) 환경에서 정상 동작하는 다른 CPU 또는 운영 체제(OS)에 영향을 주지 않고, 오류가 발생한 특정 CPU 또는 운영 체제(OS)만 복구할 수 있다.
따라서, 정상적인 동작을 수행하는 다수의 CPU 또는 운영 체제(OS)의 불필요한 리부팅 절차를 제거할 수 있다. 특히, 지속적인 동작 혹은 실시간 동작을 요구하는 CPU 또는 운영 체제(OS)만의 동작 지속성 혹은 실시간성을 유지하면서 오류 발생 CPU 또는 운영 체제(OS)의 복구를 시도할 수 있다.
도 1은 본 발명의 실시예에 따른 시스템-온-칩(SoC)의 구성도이다.
도 2는 본 발명의 한 실시예에 따른 시스템-온-칩(SoC)의 리부팅 제어 방법을 나타낸 순서도이다.
도 3은 본 발명의 다른 실시예에 따른 시스템-온-칩(SoC)의 리부팅 제어 방법을 나타낸 순서도이다.
도 4는 본 발명의 또 다른 실시예에 따른 시스템-온-칩(SoC)의 리부팅 제어 방법을 나타낸 순서도이다.
도 5는 본 발명의 실시예에 따른 PMU의 사용자 레지스터를 나타낸다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 "전송 또는 제공" 은 직접적인 전송 또는 제공하는 것 뿐만 아니라 다른 장치를 통해 또는 우회 경로를 이용하여 간접적으로 전송 또는 제공도 포함할 수 있다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
본 명세서에서 도면에 관계없이 동일한 도면번호는 동일한 구성요소를 지칭하며, "및/또는" 은 언급된 구성 요소들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서, 제1, 제2 등과 같이 서수를 포함하는 용어들은 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
도 1은 본 발명의 실시예에 따른 시스템-온-칩(SoC)의 구성도이다.
도 1을 참조하면, 단일 시스템-온-칩(SoC)(100)은 멀티 CPU로 구성되어 있다.시스템-온-칩(SoC)(100)은 마스터 CPU(101), 복수의 슬레이브 CPU(103, 105), 복수의 워치독(Watchdog)(107, 109, 111), 전원 관리 유닛(Power Management Unit, PMU)(113), 복수의 IPC(Inter-Processor Communication) 디바이스(115, 117)를 포함한다.
여기서, 설명의 편의를 위하여 2개의 슬레이브 CPU(103, 105)를 도시하였지만, 슬레이브 CPU(103, 105)의 개수가 2개로 국한되는 것은 아니다.
마스터 CPU(101)는 복수의 슬레이브 CPU(103, 105)의 동작 상태를 모니터링한다. 마스터 CPU(101)는 복구가 필요한 임의의 슬레이브 CPU(103, 105)를 개별적으로 리부팅(rebooting)하는 관리자로서의 역할을 수행한다. 마스터 CPU(101)는 각 슬레이브 CPU들(103, 105)에서 실행되는 소프트웨어 프로그램의 상태 감시 및 복구를 수행한다.
복수의 슬레이브 CPU(103, 105)는 마스터 CPU(101)의 관리 대상으로서, 관리자의 기능이 없는 일반적인 CPU들이다.
마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105)는 다양한 하드웨어 자원을 공유하며 동작할 수 있다.
여기서, 하드웨어 자원은 메모리, 각종 디바이스들을 포함할 수 있다. 각종 디바이스들은 UART(Universal asynchronous receiver/transmitter), I2C(Inter-Integrated Circuit), gpSP, eMMC(embedded Multi-Media Card) 등을 포함할 수 있으나, 이에 국한되는 것은 아니다.
마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105)는 이종의 CPU들로서, 독립된 작업을 수행하는 각각의 소프트웨어 프로그램을 실행한다.
여기서, 소프트웨어 프로그램은 운영 체제(Operating System, OS)를 포함할 수 있다. 예를들어, 마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105)는 안드로이드(Android) 운영체제와 같은 시스템 운영 체제, 리눅스 커널, 실시간 운영 체제(Realtime Operating System, RTOS), 무결성 검사 등과 같은 암/복호화 작업을 처리하는 보안 펌웨어(Security Firmware) 등을 실행할 수 있다.
마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105)는 프로세서간 통신(Inter Process Communication, 이하, 'IPC'라 통칭함) 디바이스들(115, 117)을 통해 정보를 송수신할 수 있다.
IPC 디바이스들(115, 117)은 마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105) 간의 통신을 위한 하드웨어 장치이다. 예를들어, 마스터 CPU(101) 및 각각의 슬레이브 CPU(103, 105)는 공유하는 물리 자원의 사용을 위해 해당 물리 자원을 사용하고 있는 다른 CPU가 있는지 IPC 통신을 통해 확인한다.
마스터 CPU(101) 및 각각의 슬레이브 CPU(103, 105)는 공유 자원 중에 가용 자원이 있다면, IPC 통신을 통해 다른 CPU(101, 103, 105)에게 가용 자원의 사용을 알리고 사용할 수 있다.
IPC 디바이스들(115, 117)은 각각 메일박스(Mailbox)를 포함한다. 메일박스는 마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105) 간의 통신에 사용되는 인터페이스이다. 슬레이브 CPU #1(103)이 리셋 요청(Reset Request)을 IPC 디바이스_1(115)의 메일박스에 기록한다. 그러면, 마스터 CPU(101)는 IPC 디바이스_1(115)의 메일박스에 접근하여 기록된 리셋 요청(Reset Request)을 리드한다.
마스터 CPU(101)는 슬레이브 CPU #1(103)에게 직접 리셋 CPU를 전송한다.
슬레이브 CPU #2(105)이 리셋 요청(Reset Request)을 IPC 디바이스_2(117)의 메일박스에 기록한다. 그러면, 마스터 CPU(101)는 IPC 디바이스_2(117)의 메일박스에 접근하여 기록된 리셋 요청(Reset Request)을 리드한다.
마스터 CPU(101)는 슬레이브 CPU #2(105)에게 직접 리셋 CPU를 전송한다.
여기서, 마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105) 간에 리셋을 위한 별도의 인터페이스, 즉, CPU 제어 인터페이스로 연결되어 있다. CPU 제어 인터페이스는 마스터 CPU(101)로부터 복수의 슬레이브 CPU(103, 105)로 향하는 단방향 인터페이스이다. 마스터 CPU(101)는 CPU 제어 인터페이스를 통해 복수의 슬레이브 CPU(103, 105)로 각각의 리셋 CPU 신호를 출력한다.
이와 같이, 마스터 CPU(101)는 IPC 통신을 통해 복수의 슬레이브 CPU(103, 105)의 동작 상태, 즉, 오류 발생 여부를 확인할 수 있다.
마스터 CPU(101)는 IPC 통신을 통해 복수의 슬레이브 CPU(103, 105)로부터 정상 동작 상태를 주기적으로 보고받을 수 있다.
마스터 CPU(101)는 IPC 통신을 통해 복수의 슬레이브 CPU(103, 105)로부터 오류 상태를 보고받을 수 있다.
이때, 복수의 슬레이브 CPU(103, 105)가 행업(Hangup) 상태가 되면, IPC 통신으로 동작 상태를 마스터 CPU(101)에게 보고하지 못한다. 이러한 경우를 대비하여, 마스터 CPU(101)와 복수의 슬레이브 CPU(103, 105) 각각에는 워치독(Watchdog)들(107, 109, 111)이 연결되어 있다.
마스터 워치독(107)은 마스터 CPU(101)에 연결되어 마스터 CPU(101)로부터 Kick 신호를 수신한다. 슬레이브 워치독 #1(109)은 슬레이브 CPU #1(103)에 연결되어 슬레이브 CPU #1(103)으로부터 Kick 신호를 수신한다. 슬레이브 워치독 #2(111)은 슬레이브 CPU #2(105)에 연결되어 슬레이브 CPU #2(105)으로부터 Kick 신호를 수신한다.
여기서, Kick 신호는 각 CPU(101, 103, 105)가 정상 동작함을 알려주는 주기적 얼라이브(Alive) 신호이다.
마스터 워치독(107) 및 슬레이브 워치독들(109, 111)은 주기적으로 각 CPU(101, 103, 105)의 상태를 감시한다.
마스터 워치독(107) 및 슬레이브 워치독들(109, 111)은 Kick 신호가 워치독 타이머가 만료할때까지 수신되지 않으면, 인터럽트를 발생시킨다. 즉, 종래의 워치독이 CPU의 동작 불능 상태가 감지되면, 전체 하드웨어를 초기화하여 리부팅했던 것과 달리, 슬레이브 워치독들(109, 111)은 마스터 CPU(101)에게 인터럽트 요청(IRQ, Interrupt ReQuest)을 전달한다. 마스터 CPU(101)가 인터럽트 요청(IRQ)을 통해 특정 슬레이브 CPU(103, 105)의 동작 불능 상태를 인지한다.
인터럽트를 확인한 마스터 CPU(101)는 특정 슬레이브 CPU(103, 105)를 리셋하기 위한 준비 작업을 수행하고, 특정 슬레이브 CPU(103, 105)를 초기화하여 리부팅한다. 종래에는 워치독이 CPU의 동작 불능 상태를 감지하면, PMU(113)에게 시스템 리셋을 요구하였으므로, 동작 불능 상태인 CPU 뿐만 아니라 정상 상태의 CPU까지 리셋 되는 문제가 발생하였다.
그러나, 본 발명의 실시예에 따르면, 마스터 CPU(101)가 인터럽트를 요청한 특정 슬레이브 CPU(103, 105)만을 리셋시키므로, 종래와 같은 문제가 발생하지 않는다.
물론, 설정에 따라 마스터 워치독(107) 및 슬레이브 워치독들(109, 111)은 PMU(113)로 리셋을 요청하는 기능도 포함할 수 있다.
실시예에 따르면, 마스터 워치독(107) 및 슬레이브 워치독들(109, 111)은 IRQ 전송과 리셋 신호 전송 중에 선택적으로 인에이블(Enable)될 수도 있다.
마스터 CPU(101)는 슬레이브 CPU(103, 105)가 동작 불능 상태에 빠졌다고 판단되는 경우, 슬레이브 CPU(103, 105)를 리셋하기 위한 준비 작업을 수행하고, 슬레이브 CPU(103, 105)를 초기화하여 리부팅한다.
이때, 마스터 CPU(101)는 정상 상태에 있는 슬레이브 CPU(103, 105)에 영향을 주지 않고, 동작 불능 상태에 있는 슬레이브 CPU(103, 105)만을 리셋한 후 복구한다.
마스터 CPU(101)는 PMU(113)를 통해 리셋 절차를 수행하며, 오류가 발생한 슬레이브 CPU #1(103)와 슬레이브 CPU #1(103)에게 할당된 모든 물리 자원은 최초 전원이 인가된 시점과 같이 모두 초기화된다. 이러한 리셋 절차는 리부팅 및 복구로 구성된다. CPU 리셋은 운영체제(OS)에서 정의한 절차에 따라 순차적인 단계를 거쳐 이루어진다. 리셋 절차는 해당 CPU에 탑재된 운영체제(OS)에 따라 차이가 있으나, 시스템 오류로부터의 복구를 위한 리셋 절차는 일반적으로 아래와 같이 이루어진다.
오류가 발생한 슬레이브 CPU #1(103)에 탑재된 운영체제(OS)는 리셋을 수행하기 전 필요한 일부 정리 작업을 수행한다. 이러한 정리 작업은 일반적으로 리부팅된 후 사용자 혹은 시스템 관리자에 시스템 오류의 발생 원인 등을 제공하기 위한 목적으로 수행된다. 예를들어, 리눅스 커널(Linux kernel)의 경우, 시스템 오류 발생시의 CPU 및 메모리의 상태를 기록하는 등의 작업을 수행한다.
이후, PMU(Power Management Unit)와 같은 전력 관리 장치를 통해 CPU를 포함한 물리 자원을 초기화하여, 최초 전원이 인가된 시점과 같이 새로이 시동 절차를 수행한다.
예컨대, 마스터 CPU(101)가 슬레이브 CPU #1(103)로부터 리셋 요청(Reset Request)을 수신한 경우, 슬레이브 CPU #1(103)에게 리셋 CPU 신호를 전송한다. 그리고 마스터 CPU(101)는 PMU(113)에게 슬레이브 CPU #1(103)의 리셋을 요청한다. 그러면, PMU(113)는 슬레이브 CPU #1(103)에 한해 전원 공급을 차단하여 초기화시킨 후, 다시 전원을 공급하여 리부팅한다.
이때, 마스터 CPU(101)는 IPC 디바이스들(115, 117)로부터 슬레이브 CPU들(103, 105)의 상태 정보가 확인되면, 이를 PMU(113)의 사용자 레지스터(User Register)에 기록한다. 이때, 기록되는 상태 정보는 리셋 여부에 관한 정보를 포함할 수 있다.
마스터 CPU(101)는 사용자 레지스터에 기록된 정보를 기초로, 리셋 대상인 오류가 발생한 슬레이브 CPU #1(103)를 식별할 수 있다. 즉, 마스터 CPU(101)는 오류가 발생한 슬레이브 CPU #1(103)의 리셋을 수행할때, 사용자 레지스터에 기록된 다른 슬레이브 CPU #2(105)의 상태 정보를 리드한다.
만약, 슬레이브 CPU #2(105)가 정상 동작 중인 것으로 확인되면, 오류가 발생한 슬레이브 CPU #1(103)와 정상 동작 중인 슬레이브 CPU #2(105)가 공유하는 물리 자원에 대한 초기화는 수행하지 않고 리셋 절차를 진행한다.
즉, 오류가 발생한 슬레이브 CPU #1(103)만을 초기화하며 다른 하드웨어를 조작하지 않는다.
도 2는 본 발명의 한 실시예에 따른 시스템-온-칩(SoC)의 동작 방법을 나타낸 순서도이다.
도 2를 참조하면, 슬레이브 CPU #1(103)에서 리부트 이벤트가 발생(S101)하면, 마스터 CPU(101)에게 리셋 요청(Reset Request)을 전송(S103)하고 아이들(Idle) 상태로 진입한다(S105).
여기서, 아이들 상태는 슬레이브 CPU #1(103)가 IPC 디바이스 1(115)의 메일박스에 액세스 하지 않는 상태이다.
또한, 리부트 이벤트는 복구가 어려운 시스템 오류 발생 등으로 트리거될 수 있다.
마스터 CPU(101)는 리셋 요청(Reset Request)을 전송한 슬레이브 CPU #1(103)의 상태를 확인한다(S107). 마스터 CPU(101)는 슬레이브 CPU #1(103)의 상태가 유휴 상태인지를 판단한다(S109).
유휴 상태가 아니라면, S107 단계 이전으로 되돌아간다.
유휴 상태라면, 리셋 준비를 한다(S111). 앞서 설명한 바와 같이, 리셋 준비는 오류 발생시 CPU 및 메모리의 상태 기록 등과 같은 정리 작업을 포함할 수 있다. 리셋 준비가 완료되면, 마스터 CPU(101)는 슬레이브 CPU #1(103)를 리셋한다(S113).
이때, 마스터 CPU(101)는 슬레이브 CPU #1(103)에게 리셋 커맨드를 출력하고, PMU(113)에게 슬레이브 CPU #1(103)의 리셋을 요청하는 제어 신호를 출력한다. 그러면, PMU(113)는 슬레이브 CPU #1(103)로 공급되는 전원 신호를 차단한 후, 다시 공급하여 슬레이브 CPU #1(103)을 리부팅한다.
이와 같이, 슬레이브 CPU #1(103)은 주기적인 동작 상태 정보를 마스터 CPU(101)로 보고하는 종래와 달리, 시스템 오류가 발생되었을때, 마스터 CPU(101)에게 리셋 요청(Reset Request)을 전송한다.
또한, 시스템 오류 발생시 시스템-온-칩(SoC)(100) 내 모든 CPU들의 리셋이 일괄적으로 수행되던 종래와 달리, 마스터 CPU(101)는 오류가 발생한 슬레이브 CPU #1(103)만 리셋시킨다.
도 3은 본 발명의 다른 실시예에 따른 시스템-온-칩(SoC)의 동작 방법을 나타낸 순서도이다.
도 3을 참조하면, 슬레이브 워치독 #1(109)은 슬레이브 CPU #1(103)으로부터 주기적 얼라이브(Alive) 신호인 Kick 신호를 수신한다.
그런데, 슬레이브 CPU #1(103)이 CPU 행업(정지) 상태(S201)가 되면, 슬레이브 워치독 #1(109)은 슬레이브 CPU #1(103)로부터 Kick 신호를 수신하지 못한다(S203). CPU 행업(정지) 상태는 슬레이브 CPU #1(103)가 자신의 상태 정보 또는 리셋 요청을 마스터 CPU(101)에게 전달할 수 없는 동작 불능 상태이다.
슬레이브 워치독 #1(109)은 워치독 타이머의 만료 여부를 판단한다(S205). 슬레이브 워치독 #1(109)은 워치독 타이머가 만료하면, 마스터 CPU(101)에게 워치독 인터럽트 요청(Interrupt Request, IRQ)을 전송한다(S207).
마스터 CPU(101)는 리셋 준비를 수행(S209)한 후, 리셋 준비가 완료되면, 슬레이브 CPU #1(103)를 리셋한다(S211).
이때, S209 단계와 S211 단계는 도 2에서 S111 단계와 S113 단계와 동일하므로, 자세한 설명은 생략한다.
종래에는 슬레이브 워치독 #1(109)이 슬레이브 CPU #1(103)의 행업을 감지하면, PMU(113)에게 리셋을 요청하므로, 시스템-온-칩(SoC)(100) 전체의 리셋이 수행된다. 따라서, 시스템 오류가 발생하지 않은 다른 CPU 및 그 위의 운영체제를 포함한 모든 구성 요소가 리셋된다.
그러나, 본 발명의 실시예에 따르면, 오류가 발생한 슬레이브 워치독 #1(109)이 마스터 CPU(101)에게 인터럽트 요청(IRQ)을 전송한다. 이를 통해 마스터 CPU(101)는 특정 슬레이브 CPU #1(103)의 동작 불능 상태를 인지할 수 있다. 따라서, 마스터 CPU(101)는 특정 슬레이브 CPU #1(103)에 한해 PMU(113)에게 리셋을 요청한다. 그러면, PMU(113)에 의해 특정 슬레이브 CPU #1(103)만 초기화된 후, 리부팅된다.
도 2 및 도 3에서 설명한 바와 같이, 마스터 CPU(101)는 정상적으로 동작하는 다른 슬레이브 CPU #2(105) 및 그 슬레이브 CPU #2(105)에서 동작하는 운영 체제에 영향을 주지 않고, 오직 오류가 발생한 슬레이브 CPU #1(103)만을 리셋한 후, 복구할 수 있다.
도 4는 본 발명의 또 다른 실시예에 따른 시스템-온-칩(SoC)의 동작 방법을 나타낸 순서도이고, 도 5는 본 발명의 실시예에 따른 PMU의 사용자 레지스터를 나타낸다.
도 4를 참조하면, 리셋 대상인 슬레이브 CPU #1(103)의 동작을 나타낸다.
슬레이브 CPU #1(103)은 리부트 작업을 진행(S301)할 때, PMU(113)의 사용자 레지스터로부터 다른 슬레이브 CPU #2(105)의 동작 상태 정보를 확인한다(S303).
슬레이브 CPU #1(103)은 S303 단계에서 확인한 정보에 기초하여 정상 동작 상태인 슬레이브 CPU #2(105)와 공유하는 물리 자원의 초기화는 생략하고 리부트 절차를 계속 진행한다(S305).
이때, 마스터 CPU(101)는 IPC 디바이스들(115, 117)로부터 획득한 상태 정보를 도 5와 같이, PMU(113)의 사용자 레지스터에 기록한다.
사용자 레지스터는 32비트로서, 이 비트들 중에서 일부 비트가 상태 정보 기록을 위해 사용될 수 있다. 예를들어, 32 비트는 총 6개로 구분되어 있는데, 0번 비트~ 6번 비트를 사용하는 A 파트, 7번 비트를 사용하는 B 파트, 8번 비트 ~ 11번 비트를 사용하는 C 파트, 12번 비트 ~ 15번 비트를 사용하는 D 파트, 16번 비트 ~ 23번 비트를 사용하는 E 파트, 23번 비트 ~ 31번 비트를 사용하는 F 파트로 구성될 수 있다. 이때, 상태 정보는 D 파트에 기록될 수 있다.
이와 같이, 본 발명의 실시예에 따르면, 정상 동작 중인 다른 CPU 및 운영 체제의 동작에는 영향을 주지 않고 오류가 발생한 CPU만 리셋할 수 있으므로, 종래와 같이 정상적인 동작을 수행하는 다수의 시스템의 불필요한 재시동 절차를 제거할 수 있다. 따라서, 멀티 CPU 및 각 CPU에서 실행되는 서로 다른 독립적인 운영 체제를 안정적으로 운용할 수 있다. 특히, 지속적인 동작 혹은 실시간 동작을 요구하는 시스템이 포함된 SoC 환경의 경우, 해당 시스템의 동작 지속성 혹은 실시간성을 유지하며, 다른 시스템의 복구를 시도할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (11)

  1. 시스템-온-칩(System-On-Chip, SoC)으로서,
    적어도 두개의 슬레이브 CPU,
    상기 적어도 두개의 슬레이브 CPU의 동작 상태를 모니터링하고, 모니터링 결과에 기초하여 오류가 발생한 슬레이브 CPU를 개별적으로 리셋(Reset)하는 마스터 CPU(Central Processing Unit), 그리고
    상기 적어도 두개의 슬레이브 CPU 각각과 연결된 각각의 슬레이브 워치독(Watchdog)을 포함하고,
    상기 각각의 슬레이브 워치독은,
    연결된 슬레이브 CPU로부터 주기적으로 상기 연결된 슬레이브 CPU의 정상 동작을 알리는 얼라이브 신호를 수신하고, 상기 얼라이브 신호가 임계 시간 동안 수신되지 않으면, 상기 마스터 CPU에게 인터럽트 요청 신호를 전송하고,
    상기 슬레이브 CPU는,
    리부트 이벤트가 발생하면, 상기 마스터 CPU에게 IPC(Inter-Processor Communication) 통신을 통하여 리셋 요청을 전송하며,
    상기 마스터 CPU는,
    상기 인터럽트 요청 신호 또는 상기 리셋 요청에 기초하여 오류가 발생한 슬레이브 CPU를 감지하고 상기 오류가 발생한 슬레이브 CPU를 리셋하는, 시스템-온-칩(SoC).
  2. 제1항에서,
    상기 마스터 CPU는,
    상기 적어도 두개의 슬레이브 CPU의 상태 정보를 지정된 메모리 장치에 기록하고,
    상기 적어도 두개의 슬레이브 CPU 중 하나의 CPU에서 오류 발생이 감지되면, 상기 메모리 장치에 기록된 상태 정보에 기초하여 정상 동작 상태인 CPU와 오류 발생이 감지된 CPU를 구분하는, 시스템-온-칩(SoC).
  3. 제2항에서,
    상기 마스터 CPU는,
    상기 오류 발생이 감지된 CPU에 할당된 물리 자원 중에서 정상적으로 동작하는 CPU와 공유하는 물리 자원에 대한 초기화를 리셋 작업에서 제외하는, 시스템-온-칩(SoC).
  4. 제2항에서,
    상기 마스터 CPU 및 상기 적어도 두개의 슬레이브 CPU와 연결되어 전원 공급을 제어하는 전원 관리 유닛(Power Management Unit, PMU)을 더 포함하고,
    상기 메모리 장치는,
    상기 전원 관리 유닛의 사용자 레지스터를 포함하고,
    상기 전원 관리 유닛은,
    상기 마스터 CPU가 사용자 레지스터에 기록한 상태 정보를 기초로 오류가 발생한 슬레이브 CPU를 확인하고, 상기 오류가 발생한 CPU로의 전원 공급을 차단하여 초기화를 수행한 후, 전원을 재공급하여 상기 오류가 발생한 슬레이브 CPU를 리부팅시키는, 시스템-온-칩(SoC).
  5. 제1항에서,
    상기 마스터 CPU 및 상기 적어도 두개의 슬레이브 CPU는,
    각각의 소프트웨어 프로그램을 서로 독립적으로 실행하는, 시스템-온-칩(SoC).
  6. 제1항에서,
    상기 마스터 CPU는,
    상기 적어도 두개의 슬레이브 CPU와 IPC(Inter-Processor Communication) 통신을 수행하고,
    상기 IPC 통신을 통하여 각각의 슬레이브 CPU로부터 상태 정보를 수신하며,
    상기 상태 정보에 기초하여, 오류가 발생한 슬레이브 CPU를 감지하는, 시스템-온-칩(SoC).
  7. 삭제
  8. 서로 다른 복수의 CPU(Central Processing Unit)를 운용하는 시스템-온-칩(System-On-Chip, SoC)에서, CPU의 리부팅을 제어하는 방법으로서,
    마스터 CPU가 적어도 두개의 슬레이브 CPU의 동작 상태를 모니터링하는 단계,
    모니터링 결과에 기초하여 오류가 발생한 슬레이브 CPU를 식별하는 단계, 그리고
    식별한 슬레이브 CPU를 리셋(Reset)하는 단계를 포함하고,
    상기 모니터링하는 단계는,
    리부트 이벤트가 발생한 슬레이브 CPU로부터 IPC(Inter-Processor Communication) 통신을 통하여 리셋 요청을 수신하거나 또는 슬레이브 워치독으로부터 인터럽트 요청 신호를 수신하고,
    상기 식별하는 단계는,
    상기 인터럽트 요청 신호가 수신된 경우, 상기 인터럽트 요청 신호가 수신된 슬레이브 워치독에 연결되어 있는 슬레이브 CPU를 오류가 발생한 슬레이브 CPU로 식별하고,
    상기 슬레이브 워치독은,
    상기 적어도 두개의 슬레이브 CPU에 각각 연결되며, 연결된 슬레이브 CPU로부터 상기 연결된 슬레이브 CPU의 정상 동작을 알리는 얼라이브 신호를 주기적으로 수신하고, 상기 얼라이브 신호가 임계 시간 동안 수신되지 않으면, 상기 마스터 CPU에게 상기 인터럽트 요청 신호를 전송하는, CPU 리부팅 제어 방법.
  9. 제8항에서,
    상기 리셋하는 단계는,
    상기 슬레이브 CPU가 유휴 상태로 확인되면, 상기 리셋 요청을 전송한 슬레이브 CPU를 리셋하는, CPU 리부팅 제어 방법.
  10. 삭제
  11. 제8항에서,
    상기 모니터링하는 단계 이후,
    모니터링 결과에 기초하여 상기 적어도 두개의 슬레이브 CPU 각각의 상태 정보를 사전에 지정된 메모리 영역에 기록하는 단계를 더 포함하고,
    상기 리셋하는 단계는,
    상기 메모리 영역의 상태 정보에 기초하여 상기 오류가 발생한 슬레이브 CPU를 제외한 정상 상태인 슬레이브 CPU를 선별하는 단계, 그리고
    선별한 정상 상태인 슬레이브 CPU와 공유하는 물리 자원에 대한 초기화를 리셋 작업에서 제외하는 단계
    를 포함하는, CPU 리부팅 제어 방법.
KR1020190174324A 2019-12-24 2019-12-24 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법 KR102211853B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190174324A KR102211853B1 (ko) 2019-12-24 2019-12-24 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190174324A KR102211853B1 (ko) 2019-12-24 2019-12-24 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법

Publications (1)

Publication Number Publication Date
KR102211853B1 true KR102211853B1 (ko) 2021-02-03

Family

ID=74571791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174324A KR102211853B1 (ko) 2019-12-24 2019-12-24 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법

Country Status (1)

Country Link
KR (1) KR102211853B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553854A (zh) * 2022-02-11 2022-05-27 亿咖通(湖北)技术有限公司 基于Mailbox的Linux通信方法、第一处理器及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305815A (ja) * 1999-04-15 2000-11-02 Nec Corp 二重化情報処理装置、メモリダンプ方法、およびコンピュータ読み取り可能な記録媒体
WO2012132218A1 (ja) * 2011-03-31 2012-10-04 ルネサスエレクトロニクス株式会社 プロセッサシステム及びその制御方法
KR20160054850A (ko) * 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
JP2019185429A (ja) * 2018-04-11 2019-10-24 キヤノン株式会社 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305815A (ja) * 1999-04-15 2000-11-02 Nec Corp 二重化情報処理装置、メモリダンプ方法、およびコンピュータ読み取り可能な記録媒体
WO2012132218A1 (ja) * 2011-03-31 2012-10-04 ルネサスエレクトロニクス株式会社 プロセッサシステム及びその制御方法
KR20160054850A (ko) * 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
JP2019185429A (ja) * 2018-04-11 2019-10-24 キヤノン株式会社 情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553854A (zh) * 2022-02-11 2022-05-27 亿咖通(湖北)技术有限公司 基于Mailbox的Linux通信方法、第一处理器及系统

Similar Documents

Publication Publication Date Title
US11627041B2 (en) Dynamic reconfiguration of resilient logical modules in a software defined server
JP4345334B2 (ja) 耐障害計算機システム、プログラム並列実行方法およびプログラム
US6948094B2 (en) Method of correcting a machine check error
EP2598993B1 (en) Providing application high availability in highly-available virtual machine environments
US9430266B2 (en) Activating a subphysical driver on failure of hypervisor for operating an I/O device shared by hypervisor and guest OS and virtual computer system
JP2750312B2 (ja) チャネルの使用中時間を測定する手段
JP2552651B2 (ja) 再構成可能なデュアル・プロセッサ・システム
EP1351145A1 (en) Computer failure recovery and notification system
US8413144B1 (en) Providing application-aware high availability of virtual machines
US8307367B2 (en) Smart scheduling of automatic partition migration by the use of timers
US8381028B2 (en) Accelerating recovery in MPI environments
US20120246644A1 (en) Virtual computer system and controlling method of virtual computer
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US20170147422A1 (en) External software fault detection system for distributed multi-cpu architecture
JP2001101033A (ja) オペレーティングシステム及びアプリケーションプログラムの障害監視方法
JP2004355233A (ja) 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
JP2010140361A (ja) コンピュータシステム及び異常検出回路
JP6130520B2 (ja) 多重系システムおよび多重系システム管理方法
US7877643B2 (en) Method, system, and product for providing extended error handling capability in host bridges
US9529656B2 (en) Computer recovery method, computer system, and storage medium
KR20040047209A (ko) 네트워크 상의 컴퓨터 시스템의 자동 복구 방법 및 이를구현하기 위한 컴퓨터 시스템의 자동 복구 시스템
CN114586013A (zh) 启动诊断操作以收集主机信息的基板管理控制器
KR102211853B1 (ko) 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법
EP1172732A1 (en) Computer system and method of handling trouble of computer system
JP2006285384A (ja) プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant