KR102550886B1 - System on chip and operating method thereof - Google Patents

System on chip and operating method thereof Download PDF

Info

Publication number
KR102550886B1
KR102550886B1 KR1020180087692A KR20180087692A KR102550886B1 KR 102550886 B1 KR102550886 B1 KR 102550886B1 KR 1020180087692 A KR1020180087692 A KR 1020180087692A KR 20180087692 A KR20180087692 A KR 20180087692A KR 102550886 B1 KR102550886 B1 KR 102550886B1
Authority
KR
South Korea
Prior art keywords
processors
debugging
chip
information
information extraction
Prior art date
Application number
KR1020180087692A
Other languages
Korean (ko)
Other versions
KR20190116029A (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 US16/214,978 priority Critical patent/US10962593B2/en
Priority to CN201910228208.1A priority patent/CN110347639A/en
Publication of KR20190116029A publication Critical patent/KR20190116029A/en
Application granted granted Critical
Publication of KR102550886B1 publication Critical patent/KR102550886B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

본 발명의 실시 형태에 따른 시스템 온 칩은, 교착 상태(Deadlock)에서 수신한 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들, 상기 복수의 프로세서들에 연결되는 시스템 버스(bus), 및 상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저를 포함한다.A system on a chip according to an embodiment of the present invention stores debugging information in response to an information extraction command received in a deadlock state, and includes a plurality of processors, at least some of which have architectures different from each other, and the plurality of processors. A system on chip (SoC) that generates the information extraction command differently for at least some of the plurality of processors according to a system bus connected to the ) includes the manager.

Figure R1020180087692
Figure R1020180087692

Description

시스템 온 칩 및 그 동작 방법{SYSTEM ON CHIP AND OPERATING METHOD THEREOF}System on chip and its operating method {SYSTEM ON CHIP AND OPERATING METHOD THEREOF}

본 발명은 시스템 온 칩 및 그 동작 방법에 관한 것이다.The present invention relates to a system on a chip and a method of operating the same.

최근 들어 시스템 온 칩의 적용 분야가 점점 넓어지고 있다. 시스템 온 칩은 다양한 기능을 갖춘 복잡한 시스템을 하나의 칩으로 구현한 것으로서, 하나의 시스템 온 칩 내부에는 하나 이상의 프로세서가 포함될 수 있다. 시스템 온 칩에 포함되는 복수의 프로세서들은 서로 필요한 데이터를 주고받으며 동작할 수 있는데, 이 과정에서 의도치 않은 교착 상태(Deadlock)가 발생할 수 있다. 교착 상태가 발생할 경우, 개발자 또는 사용자가 교착 상태의 원인 등을 파악할 수 있도록, 시스템 온 칩에 포함되는 프로세서들로부터 디버깅에 필요한 디버깅 정보를 확보하는 기능이 시스템 온 칩에 구현될 수 있다.In recent years, the application fields of system-on-a-chip are gradually widening. A system-on-chip implements a complex system with various functions in a single chip, and one or more processors may be included in one system-on-chip. A plurality of processors included in the system-on-chip may operate by exchanging necessary data with each other, and in this process, an unintended deadlock may occur. When a deadlock occurs, a function of obtaining debugging information necessary for debugging from processors included in the system-on-chip may be implemented in the system-on-chip so that a developer or a user can determine the cause of the deadlock.

본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 서로 다른 아키텍처(architecture)에 따라 설계된 복수의 프로세서들을 탑재한 시스템 온 칩에 대하여, 교착 상태 발생시 복수의 프로세서들 각각의 아키텍처를 고려하여 디버깅 정보를 추출 및/또는 저장할 수 있는 시스템 온 칩 및 그 동작 방법을 제공하고자 하는 데에 있다.One of the problems to be achieved by the technical idea of the present invention is to generate debugging information in consideration of the architecture of each of the plurality of processors when a deadlock occurs in a system-on-a-chip equipped with a plurality of processors designed according to different architectures. It is to provide a system-on-a-chip capable of extracting and/or storing and a method of operating the same.

본 발명의 일 실시예에 따른 시스템 온 칩은, 교착 상태(Deadlock)에 진입하면 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들, 상기 복수의 프로세서들에 연결되는 시스템 버스(bus), 및 상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저를 포함한다.A system-on-a-chip according to an embodiment of the present invention stores debugging information in response to an information extraction command when entering a deadlock state, and includes a plurality of processors, at least some of which have different architectures, and the plurality of processors. a system bus connected to the .s, and when the deadlock occurs, SoC (System on SoC) differently generating the information extraction command for at least some of the plurality of processors according to the architecture of each of the plurality of processors. Chip) manager.

본 발명의 일 실시예에 따른 시스템 온 칩은, 제1 인터페이스와 제2 인터페이스, 및 중앙 처리 유닛을 각각 포함하는 복수의 프로세서들, 상기 제1 인터페이스에 연결되는 시스템 버스, 상기 제2 인터페이스에 연결되는 디버깅 마스터, 및 상기 시스템 버스를 통해 상기 복수의 프로세서들과 연결되며, 상기 복수의 프로세서들에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러를 포함하고, 상기 디버깅 마스터는, 상기 교착 상태가 발생하면 상기 SoC 컨트롤러의 명령에 응답하여 상기 복수의 프로세서들 각각의 아키텍처에 기초하여 생성된 정보 추출 커맨드를 상기 복수의 프로세서들에 전송한다.A system-on-a-chip according to an embodiment of the present invention includes a plurality of processors each including a first interface, a second interface, and a central processing unit, a system bus connected to the first interface, and connected to the second interface. a debugging master, and an SoC controller connected to the plurality of processors through the system bus and detecting a deadlock occurring in the plurality of processors, wherein the debugging master, when the deadlock occurs, An information extraction command generated based on the architecture of each of the plurality of processors is transmitted to the plurality of processors in response to a command of the SoC controller.

본 발명의 일 실시예에 따른 시스템 온 칩은, 제1 아키텍처에 따라 설계된 제1 프로세서, 상기 제1 아키텍처와 다른 제2 아키텍처에 따라 설계된 제2 프로세서, 상기 제1 및 제2 프로세서들 중 적어도 하나에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러, 및 상기 제1 및 제2 프로세서들 각각의 슬레이브 인터페이스와 연결되며, 상기 교착 상태가 발생하면 상기 제1 및 제2 프로세서들이 리셋되기 전에 상기 슬레이브 인터페이스를 통해 상기 제1 및 제2 프로세서들에 정보 추출 커맨드를 전송하여 디버깅 정보를 확보하는 디버깅 마스터를 포함하며, 상기 제1 및 제2 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 서로 다른 방법으로 상기 디버깅 정보를 저장한다.A system-on-chip according to an embodiment of the present invention includes a first processor designed according to a first architecture, a second processor designed according to a second architecture different from the first architecture, and at least one of the first and second processors. It is connected to an SoC controller that detects a deadlock that occurs in and a slave interface of each of the first and second processors, and when the deadlock occurs, through the slave interface before the first and second processors are reset. and a debugging master that secures debugging information by transmitting an information extraction command to the first and second processors, wherein each of the first and second processors performs the debugging in a different way in response to the information extraction command. save the information

본 발명의 일 실시예에 따르면, 다양한 아키텍처에 따라 설계된 복수의 프로세서들을 탑재한 시스템 온 칩이 교착 상태에 진입할 경우, 시스템 온 칩이 재부팅되기 전에 프로세서들 각각의 아키텍처에 기초하여 프로세서들 중 적어도 일부가 디버깅 정보를 저장 및/또는 출력하도록 제어할 수 있다. 따라서, 시스템 온 칩에서 교착 상태를 발생시킨 프로세서들의 디버깅 정보를 이용하여 디버깅을 수행함으로써, 교착 상태의 원인을 정확히 파악할 수 있으며, 디버깅 작업의 효율을 개선할 수 있다.According to an embodiment of the present invention, when a system-on-a-chip equipped with a plurality of processors designed according to various architectures enters a deadlock state, before the system-on-chip is rebooted, at least one of the processors based on the architecture of each of the processors Some may be controlled to store and/or output debugging information. Therefore, by performing debugging using the debugging information of the processors that caused the deadlock in the system-on-chip, the cause of the deadlock can be accurately identified and the efficiency of debugging work can be improved.

본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.Various advantageous advantages and effects of the present invention are not limited to the above description, and will be more easily understood in the process of describing specific embodiments of the present invention.

도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 시스템 온 칩에 포함되는 프로세서를 간단하게 나타낸 블록도들이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 6은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 9 및 도 10은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 11 내지 도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 흐름도들이다.
도 15는 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 전자 기기를 간단하게 나타낸 블록도이다.
도 16은 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 자율 주행 차량을 간단하게 나타낸 블록도이다.
1 is a schematic block diagram of a system on a chip according to an embodiment of the present invention.
2 and 3 are block diagrams simply illustrating a processor included in a system-on-chip according to an embodiment of the present invention.
4 and 5 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.
6 is a simplified block diagram of a system on a chip according to an embodiment of the present invention.
7 and 8 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.
9 and 10 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.
11 to 14 are flowcharts provided to explain the operation of the system on chip according to an embodiment of the present invention.
15 is a block diagram simply illustrating an electronic device including a system on a chip according to an embodiment of the present invention.
16 is a simplified block diagram of an autonomous vehicle including a system on a chip according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.1 is a schematic block diagram of a system on a chip according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(10)은 복수의 프로세서들(11-13), 그래픽 처리 유닛(GPU, 14), 디지털 신호 처리 유닛(DSP, 15), SoC(System on Chip) 매니저(16), 및 메모리 컨트롤러(17) 등을 구성 요소들(11-17)로서 포함할 수 있다. 구성 요소들(11-17)은 시스템 버스(18)를 통해 데이터를 주고 받으며 동작할 수 있다. 시스템 버스(18)는 구성 요소들(11-17)과 연결되는 복수의 인터페이스들을 포함하며, 일례로 마스터 인터페이스와 슬레이브 인터페이스를 포함할 수 있다.Referring to FIG. 1 , a system on a chip 10 according to an embodiment of the present invention includes a plurality of processors 11 to 13, a graphic processing unit (GPU, 14), a digital signal processing unit (DSP, 15), A System on Chip (SoC) manager 16 and a memory controller 17 may be included as components 11 to 17 . The components 11 to 17 may operate while exchanging data through the system bus 18. The system bus 18 includes a plurality of interfaces connected to the components 11 to 17, and may include, for example, a master interface and a slave interface.

일례로, SoC 매니저(16)는 시스템 온 칩(10)의 동작 전반을 제어할 수 있으며, 전원 관리 로직, 클럭 관리 로직 등을 포함할 수 있다. 메모리 컨트롤러(18)는 시스템 온 칩(10)의 외부에 마련되는 휘발성 메모리 또는 비휘발성 메모리 등과 데이터 및 제어 커맨드를 주고받기 위한 로직을 포함할 수 있다. 그래픽 처리 유닛(14)은 시스템 온 칩(10)과 연결되는 디스플레이 장치 등에 표시하고자 하는 이미지 데이터를 처리할 수 있다.For example, the SoC manager 16 may control overall operations of the system on chip 10 and may include power management logic, clock management logic, and the like. The memory controller 18 may include logic for exchanging data and control commands with a volatile memory or non-volatile memory provided outside the system-on-chip 10 . The graphic processing unit 14 may process image data to be displayed on a display device connected to the system on chip 10 .

시스템 온 칩(10)은 전자 기기, 자율 주행 차량 등의 다양한 제품에 탑재될 수 있으며, 전자 기기, 자율 주행 차량 등의 동작을 제어하는 데에 필요한 연산을 수행할 수 있다. 일례로 시스템 온 칩(10)에 포함되는 복수의 프로세서들(11-13)이 상기 연산을 수행할 수 있으며, 필요한 경우 복수의 프로세서들(11-13)은 시스템 버스(19)를 통해 다른 구성 요소들(11-18)과 데이터를 주고받을 수 있다.The system on chip 10 may be mounted on various products such as electronic devices and self-driving vehicles, and may perform calculations required to control the operation of electronic devices and autonomous vehicles. For example, a plurality of processors 11-13 included in the system-on-chip 10 may perform the above operation, and if necessary, the plurality of processors 11-13 may configure other components through the system bus 19. Data can be exchanged with elements 11-18.

시스템 온 칩(10)이 교착 상태(Deadlock)에 진입하면, 시스템 온 칩(10)은 교착 상태의 발생 원인, 교착 상태를 일으킨 소스 코드 등을 분석하기 위한 정보를 디버깅 정보로서 개발자 또는 사용자에게 제공할 수 있다. 일 실시예에서, 복수의 구성 요소들(11-17)은 서로 다른 아키텍처에 따라 설계 및 구현될 수 있으며, 따라서 교착 상태 발생시 디버깅 정보를 저장하기 위해 실행되어야 하는 프로세스가 복수의 구성 요소들(11-17)마다 서로 다를 수 있다.When the system on chip 10 enters deadlock, the system on chip 10 provides information for analyzing the cause of the deadlock and the source code that caused the deadlock as debugging information to the developer or user. can do. In one embodiment, the plurality of components 11-17 may be designed and implemented according to different architectures, so that a process that must be executed to save debugging information in case of a deadlock occurs in the plurality of components 11-17. -17) may differ from each other.

일례로, 제1 프로세서(11)는 내부의 디버깅 리소스(Debugging Resource)에 상태 정보를 소정의 주기마다 스스로 저장할 수 있다. 따라서, 교착 상태가 발생할 때 제1 프로세서(11) 내부의 디버깅 리소스에 저장된 상태 정보 중 일부를 디버깅 정보로 읽어와서 저장하는 동작만으로, 제1 프로세서(11)에 대한 디버깅 정보를 확보할 수 있다. 반면, 제2 프로세서(12) 및 제3 프로세서(13)의 경우 제1 프로세서(11)와 달리 디버깅 리소스에 스스로 상태 정보를 저장하는 기능을 제공하지 않을 수 있다. 따라서 시스템 온 칩(10)이 교착 상태에 진입하면, 시스템 온 칩(10) 전체, 또는 제2 프로세서(12) 및 제3 프로세서(13)가 선택적으로 재부팅(reboot)되기 이전에 제2 프로세서(12) 및 제3 프로세서(13)로부터 디버깅 정보를 추출하여 저장하는 동작이 실행될 수 있다. For example, the first processor 11 may itself store state information in an internal debugging resource at predetermined intervals. Accordingly, when a deadlock occurs, debugging information for the first processor 11 can be secured only by reading and storing some of the state information stored in the debugging resource inside the first processor 11 as debugging information. On the other hand, in the case of the second processor 12 and the third processor 13, unlike the first processor 11, they may not provide a function of storing state information in debugging resources by themselves. Therefore, when the system on chip 10 enters a deadlock state, the second processor ( 12) and an operation of extracting and storing debugging information from the third processor 13 may be executed.

본 발명의 일 실시예에서는, SoC 매니저(16)가 디버깅 정보를 저장하기 위한 정보 추출 커맨드를 생성하고, 상기 정보 추출 커맨드를 제2 프로세서(12) 및 제3 프로세서(13)에 전달할 수 있다. SoC 매니저(16)는 제2 프로세서(12)와 제3 프로세서(13) 각각의 아키텍처를 고려하여, 상기 정보 추출 커맨드를 생성할 수 있다. 상기 정보 추출 커맨드에 응답하여, 제2 프로세서(12) 및 제3 프로세서(13)는 교착 상태가 발생한 시점 및 그 전후의 상태 정보를 디버깅 정보로 출력 및/또는 저장할 수 있다. In one embodiment of the present invention, the SoC manager 16 may generate an information extraction command for storing debugging information and transmit the information extraction command to the second processor 12 and the third processor 13 . The SoC manager 16 may generate the information extraction command in consideration of respective architectures of the second processor 12 and the third processor 13 . In response to the information extraction command, the second processor 12 and the third processor 13 may output and/or store state information before and after the deadlock occurs as debugging information.

예를 들어, 연산을 담당하는 중앙 처리 유닛, 및 상기 중앙 처리 유닛으로부터 상태 정보를 획득할 수 있는 서브 컴포넌트가 제2 프로세서(12)에 포함될 경우, SoC 매니저(16)는 상기 서브 컴포넌트를 활성화시킴으로써 제2 프로세서(12)의 디버깅 정보를 추출 및/또는 저장할 수 있다. 또한 일례로, SoC 매니저(16)는 제3 프로세서(13)를 디버깅 모드로 전환시킬 수 있으며, 제3 프로세서(13)에 소정의 명령어(instruction)를 포함하는 정보 추출 커맨드를 전송할 수 있다. 정보 추출 커맨드에 포함된 상기 명령어에 응답하여, 제3 프로세서(13)에 포함된 중앙 처리 유닛의 상태 정보가 디버깅 정보로서 추출 및/또는 저장될 수 있다. 일례로, 디버깅 정보는 제1 내지 제3 프로세서들(11-13)과 다른 별도의 저장 공간에 저장될 수 있다. 상기 저장 공간은, 시스템 온 칩(10) 전체, 또는 제1 내지 제3 프로세서들(11-13) 중 적어도 일부의 선택적인 재부팅에도 불구하고 리셋되지 않는 저장 공간일 수 있으며, 비휘발성 메모리 등으로 구현될 수 있다.For example, when the second processor 12 includes a central processing unit in charge of calculation and a subcomponent capable of obtaining state information from the central processing unit, the SoC manager 16 activates the subcomponent Debugging information of the second processor 12 may be extracted and/or stored. Also, as an example, the SoC manager 16 may switch the third processor 13 to a debugging mode and may transmit an information extraction command including a predetermined instruction to the third processor 13 . In response to the command included in the information extraction command, state information of the central processing unit included in the third processor 13 may be extracted and/or stored as debugging information. For example, debugging information may be stored in a separate storage space different from that of the first to third processors 11-13. The storage space may be a storage space that is not reset despite selective rebooting of the entire system-on-chip 10 or at least some of the first to third processors 11 to 13, and may be a non-volatile memory. can be implemented

한편, 시스템 온 칩(10)에서 발생하는 교착 상태는 시스템 버스(18)의 오류를 동반할 수 있다. 따라서, SoC 매니저(16)는 시스템 버스(18)와 다른 별도의 경로를 통해, 디버깅 정보를 저장하기 위한 정보 추출 커맨드를 구성 요소들(11-17) 중 적어도 일부에 전송할 수 있다. 일례로, 시스템 버스(18)를 논리적으로 파티션 분할하여 제1 버스와 제2 버스를 정의하고 제2 버스는 일반 동작 모드에서는 비활성화되며 교착 상태가 발생한 경우에만 활성화시켜 이용할 수 있다. 또는 시스템 버스(18)와 물리적으로 분리되는 디버깅 버스를 마련하여 교착 상태에서 이용할 수도 있다.Meanwhile, a deadlock that occurs in the system on chip 10 may be accompanied by an error in the system bus 18 . Accordingly, the SoC manager 16 may transmit an information extraction command for storing debugging information to at least some of the components 11 to 17 through a separate path different from the system bus 18 . For example, the system bus 18 is logically partitioned to define a first bus and a second bus, and the second bus is inactive in a normal operation mode and can be activated and used only when a deadlock occurs. Alternatively, a debugging bus physically separated from the system bus 18 may be provided and used in a deadlock state.

도 2 및 도 3은 본 발명의 일 실시예에 따른 시스템 온 칩에 포함되는 프로세서를 간단하게 나타낸 블록도들이다.2 and 3 are block diagrams simply illustrating a processor included in a system-on-chip according to an embodiment of the present invention.

먼저 도 2를 참조하면, 도 2에 도시한 일 실시예에 따른 시스템 온 칩(20)은 프로세서(21)와 시스템 버스(25), 및 SoC 매니저(26)를 포함할 수 있다. SoC 매니저(26)는 교착 상태 발생 여부를 감지하는 SoC 컨트롤러(27)와, 교착 상태 발생시 디버깅 정보를 확보하기 위해 정보 추출 커맨드를 프로세서(21)에 전달하는 디버깅 마스터(28) 등을 포함할 수 있다. Referring first to FIG. 2 , the system on chip 20 according to the embodiment shown in FIG. 2 may include a processor 21 , a system bus 25 , and an SoC manager 26 . The SoC manager 26 may include an SoC controller 27 that detects whether a deadlock occurs and a debugging master 28 that transmits an information extraction command to the processor 21 to secure debugging information when a deadlock occurs. there is.

프로세서(21)는 연산 처리를 담당하는 적어도 하나의 중앙 처리 유닛(22)을 가질 수 있다. 중앙 처리 유닛(22)은 시스템 온 칩(20)의 다른 구성 요소들과 데이터를 주고받기 위한 제1 인터페이스(23) 및 제2 인터페이스(24)를 가질 수 있다. 일례로, 중앙 처리 유닛(22)은 제1 인터페이스(23)와 시스템 버스(25)를 통해 SoC 컨트롤러(27)와 데이터를 주고받을 수 있으며, 제2 인터페이스(24)와 시스템 버스(25)를 통해 디버깅 마스터(28)와 데이터를 주고 받을 수 있다. 제1 인터페이스(23)는 마스터 인터페이스일 수 있고, 제2 인터페이스(24)는 슬레이브 인터페이스일 수 있다. 즉, 제2 인터페이스(24)를 통해 프로세서(21)와 디버깅 마스터(28)가 데이터를 주고받을 때, 프로세서(21)는 디버깅 마스터(28)에 대한 슬레이브 장치로 동작할 수 있다. 일 실시예에서, 중앙 처리 유닛(22)은 소프트웨어를 구성하는 복수의 명령어들 및 데이터를 처리하는 코어를 둘 이상 포함할 수 있다.The processor 21 may have at least one central processing unit 22 in charge of arithmetic processing. The central processing unit 22 may have a first interface 23 and a second interface 24 for exchanging data with other components of the system on chip 20 . For example, the central processing unit 22 may exchange data with the SoC controller 27 through the first interface 23 and the system bus 25, and may transmit and receive data through the second interface 24 and the system bus 25. Data can be exchanged with the debugging master 28 through this. The first interface 23 may be a master interface, and the second interface 24 may be a slave interface. That is, when the processor 21 and the debugging master 28 exchange data through the second interface 24, the processor 21 may operate as a slave device for the debugging master 28. In one embodiment, the central processing unit 22 may include two or more cores for processing a plurality of instructions and data constituting software.

일반적인 동작에서 중앙 처리 유닛(22)은 시스템 버스(25)를 통해 SoC 컨트롤러(27) 및 그 외에 다른 시스템 온 칩(20)의 구성 요소들과 데이터를 주고 받을 수 있다. 즉, 중앙 처리 유닛(22)은 제1 인터페이스(23)와 시스템 버스(25)를 통해 SoC 컨트롤러(27)를 비롯한 GPU, DSP, 내부 메모리, 메모리 컨트롤러 등의 다른 구성 요소들과 데이터를 주고받을 수 있다.In normal operation, the central processing unit 22 may exchange data with the SoC controller 27 and other components of the system-on-chip 20 through the system bus 25 . That is, the central processing unit 22 exchanges data with other components such as the SoC controller 27, GPU, DSP, internal memory, and memory controller through the first interface 23 and the system bus 25. can

시스템 온 칩(20)이 교착 상태에 진입하면, 프로세서(21)뿐만 아니라 시스템 온 칩(20)에 포함되는 구성 요소들 대부분이 동작을 멈추고 반응하지 않을 수 있다. 따라서 시스템 온 칩(20)이 교착 상태에 진입했을 때 어떤 명령어가 실행 중이었고 어떤 데이터에 접근 중이었는지 등을 판단하기 어려울 수 있다. 또한 교착 상태를 해소하기 위해 시스템 온 칩(20)을 재부팅하면, 구성 요소들이 모두 리셋되기 때문에 교착 상태를 유발한 명령어, 데이터 및/또는 코드 등을 파악하기가 어려울 수 있다. 상기와 같은 상황으로 인해, 교착 상태를 일으킨 원인을 제거하기 위한 디버깅 작업의 효율이 저하될 수 있다.When the system-on-chip 20 enters a deadlock state, most components included in the system-on-chip 20 as well as the processor 21 may stop operating and may not respond. Therefore, when the system on chip 20 enters a deadlock state, it may be difficult to determine which command is being executed and which data is being accessed. In addition, when the system on chip 20 is rebooted to resolve the deadlock, it may be difficult to determine the command, data, and/or code that caused the deadlock because all components are reset. Due to the above situation, the efficiency of debugging work to remove the cause of the deadlock may decrease.

본 발명에서는, 교착 상태를 감지하는 SoC 컨트롤러(27)의 명령에 의해 디버깅 마스터(28)가 프로세서(21)의 디버깅 정보를 추출할 수 있다. 디버깅 마스터(28)는 일반적인 동작 모드에서 이용되지 않는 제2 인터페이스(24)를 통해 중앙 처리 유닛(22)에 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 전달할 수 있다. 일례로, 디버깅 마스터(28)는 프로세서(21)의 아키텍처에 맞는 적절한 정보 추출 커맨드를 중앙 처리 유닛(22)에 전달할 수 있다. 시스템 버스(25)는 논리적으로 파티션 분할되는 제1 버스와 제2 버스를 가질 수 있으며, 상기 정보 추출 커맨드는 일반적인 동작 모드에서는 이용되지 않는 제2 버스에 의해 전달될 수 있다. In the present invention, the debugging master 28 may extract debugging information of the processor 21 according to a command of the SoC controller 27 that detects a deadlock. The debugging master 28 may transmit an information extraction command for securing debugging information to the central processing unit 22 through the second interface 24, which is not used in a normal operation mode. For example, the debugging master 28 may transmit an appropriate information extraction command suitable for the architecture of the processor 21 to the central processing unit 22 . The system bus 25 may have a first bus and a second bus that are logically partitioned, and the information extraction command may be delivered by a second bus that is not used in a normal operation mode.

일례로, 디버깅 마스터(28)는 교착 상태 발생 시 프로세서(21)의 상태를 나타내는 정보를, 디버깅 정보로서 강제 출력하도록 제어하는 명령어를 정보 추출 커맨드에 포함시켜 프로세서(21)에 전달할 수 있다. 상기 명령어에 의해 프로세서(21)가 출력하는 디버깅 정보는, 디버깅 마스터(28) 또는 SoC 컨트롤러(27) 등에 의해 시스템 온 칩(20)이 재부팅되는 동안 리셋되지 않는 소정의 저장 공간에 저장될 수 있다. For example, the debugging master 28 may include a command for forcibly outputting information indicating a state of the processor 21 as debugging information when a deadlock occurs, in an information extraction command, and transmit the information to the processor 21 . Debugging information output by the processor 21 according to the command may be stored in a predetermined storage space that is not reset while the system on chip 20 is rebooted by the debugging master 28 or the SoC controller 27. .

다른 실시예들에서 디버깅 마스터(28)가 전송하는 정보 추출 커맨드에 의해, 프로세서(21) 내에 포함되며 중앙 처리 유닛(22)과는 다른 서브-컴포넌트(Sub-Component)가 활성화될 수 있다. 상기 서브-컴포넌트는 중앙 처리 유닛(22)으로부터 디버깅 정보를 추출하거나, 또는 중앙 처리 유닛(22)이 스스로 디버깅 정보를 특정 저장 공간에 저장하도록 제어할 수도 있다. 상기 실시예들에서 알 수 있듯이, 디버깅 마스터(28)는 프로세서(21)의 아키텍처를 고려하여 디버깅 정보를 확보하는 데에 적절한 명령어를 선택하고, 이를 정보 추출 커맨드에 포함시켜 프로세서(21)에 전달할 수 있다. 디버깅 마스터(28)는 정보 추출 커맨드를 직접 생성하거나, 또는 SoC 컨트롤러(27)로부터 수신하여 전달할 수 있다. 한편 디버깅 마스터(28)는, 외부의 디버깅 툴, 예를 들어 JTAG 디버깅 툴과 연동되어 동작할 수 있다.In other embodiments, a sub-component included in the processor 21 and different from the central processing unit 22 may be activated by an information extraction command transmitted by the debugging master 28 . The sub-component may extract debugging information from the central processing unit 22 or control the central processing unit 22 to store the debugging information in a specific storage space by itself. As can be seen in the above embodiments, the debugging master 28 selects an appropriate command for securing debugging information in consideration of the architecture of the processor 21, includes it in an information extraction command, and transmits it to the processor 21. can The debugging master 28 may directly generate an information extraction command, or may receive and transmit an information extraction command from the SoC controller 27 . Meanwhile, the debugging master 28 may operate in conjunction with an external debugging tool, for example, a JTAG debugging tool.

다음으로 도 3을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(30)은 프로세서(31), 시스템 버스(36) 및 SoC 컨트롤러(37) 등을 포함할 수 있다. 도 3에 도시한 일 실시예에서는, 디버깅 마스터(36)가 중앙 처리 유닛(32)과 시스템 버스(38) 사이에 구현될 수 있다. 도 3에 도시한 일 실시예에서는 디버깅 마스터(36)가 프로세서(31) 내부에 포함되는 것으로 도시하였으나, 이와 달리 시스템 버스(36)와 프로세서(31) 사이에 별도의 구성 요소로 마련될 수도 있다. 시스템 온 칩(30)이 시스템 버스(36)와 구분되는 별도의 디버깅 버스를 갖는 경우, 디버깅 마스터(35)는 디버깅 버스와 프로세서(31) 사이에 연결될 수 있다. 디버깅 마스터(35)는 슬레이브 인터페이스인 제2 인터페이스(34)를 통해 중앙 처리 유닛(32)과 데이터를 주고받을 수 있다.Referring next to FIG. 3 , the system on chip 30 according to an embodiment of the present invention may include a processor 31 , a system bus 36 , an SoC controller 37 , and the like. In one embodiment shown in FIG. 3 , a debugging master 36 may be implemented between the central processing unit 32 and the system bus 38 . In the embodiment shown in FIG. 3, the debugging master 36 is shown as being included inside the processor 31, but otherwise, it may be provided as a separate component between the system bus 36 and the processor 31. . When the system on chip 30 has a separate debugging bus separated from the system bus 36, the debugging master 35 may be connected between the debugging bus and the processor 31. The debugging master 35 may exchange data with the central processing unit 32 through the second interface 34 as a slave interface.

도 3에 도시한 일 실시예에 따른 시스템 온 칩(30)이 교착 상태에 진입하면, SoC 컨트롤러(37)는 시스템 버스(36)를 통해 디버깅 마스터(35)로 디버깅 정보를 확보하라는 명령어를 전송할 수 있다. 교착 상태에서는 시스템 버스(36)의 동작 역시 중단될 수 있으므로, 도 3에 도시한 일 실시예에서는 시스템 버스(36)가 제1 버스 및 제2 버스로 파티션 분할될 수 있으며, 제1 버스는 일반적인 동작에서만, 제2 버스는 교착 상태 발생시에만 이용될 수 있다. SoC 컨트롤러(37)는 제2 버스를 통해 디버깅 마스터(35)에 디버깅 정보를 확보하기 위한 명령어를 전달할 수 있다. 또는, 앞서 설명한 바와 같이 시스템 버스(36)와 논리적으로 구분되는 별도의 디버깅 버스를 통해, SoC 컨트롤러(37)가 디버깅 마스터(35)에 디버깅 정보를 확보하기 위한 명령어를 전달할 수도 있다.When the system-on-chip 30 according to the embodiment shown in FIG. 3 enters a deadlock state, the SoC controller 37 transmits a command to secure debugging information to the debugging master 35 through the system bus 36. can In the deadlock state, the operation of the system bus 36 may also be suspended. In the embodiment shown in FIG. 3, the system bus 36 may be partitioned into a first bus and a second bus, and the first bus may be a general In operation only, the second bus can only be used in the event of a deadlock. The SoC controller 37 may transmit a command for obtaining debugging information to the debugging master 35 through the second bus. Alternatively, as described above, the SoC controller 37 may transmit a command for securing debugging information to the debugging master 35 through a separate debugging bus logically separated from the system bus 36 .

디버깅 마스터(35)는 제2 인터페이스(34)를 통해 중앙 처리 유닛(32)에 접근할 수 있다. 디버깅 마스터(35)는 중앙 처리 유닛(32)으로부터 디버깅 정보를 강제로 추출하여 저장하거나, 중앙 처리 유닛(32)이 디버깅 정보를 스스로 저장하도록 제어할 수 있다. 디버깅 정보는, 시스템 온 칩(30) 또는 프로세서(31)가 재부팅되는 동안 리셋되지 않는 저장 공간에 저장될 수 있다. 일례로 디버깅 정보는 프로세서(31) 내부의 저장 공간, 또는 시스템 온 칩(30)에 포함되며 프로세서(31)와는 다른 구성 요소의 저장 공간에 저장될 수 있다.The debugging master 35 may access the central processing unit 32 through the second interface 34 . The debugging master 35 may forcibly extract and store debugging information from the central processing unit 32 or control the central processing unit 32 to store the debugging information by itself. Debugging information may be stored in a storage space that is not reset while the system on chip 30 or the processor 31 is rebooted. For example, the debugging information may be included in a storage space inside the processor 31 or in a storage space of a component other than the processor 31 that is included in the system on chip 30 .

도 4 및 도 5는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.4 and 5 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.

도 4 및 도 5를 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(100)은 복수의 프로세서들(110-130), 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), SoC 매니저(160), 메모리 컨트롤러(170) 및 시스템 버스(180) 등을 구성 요소들로 포함할 수 있다. SoC 매니저(160)는 SoC 컨트롤러(161) 및 디버깅 마스터(162)를 포함할 수 있다.4 and 5, a system on chip 100 according to an embodiment of the present invention includes a plurality of processors 110-130, a graphics processing unit 140, a digital signal processing unit 150, and an SoC. The manager 160, the memory controller 170, the system bus 180, and the like may be included as components. The SoC manager 160 may include a SoC controller 161 and a debugging master 162 .

시스템 온 칩(100) 내에 포함되는 구성 요소들은, 시스템 온 칩(100)으로 구현, 제공하고자 하는 기능에 따라 다양하게 추가 또는 변경될 수 있다. 일례로, 도 4 및 도 5에 도시한 구성 요소들 외에, 비디오/오디오 코덱 처리를 담당하는 로직과, 시스템 온 칩(100)에 연결되는 다양한 센서들이 수집한 정보를 처리하는 로직 등이 더 포함될 수 있다.Components included in the system on a chip 100 may be added or changed in various ways according to functions to be implemented or provided by the system on a chip 100 . For example, in addition to the components shown in FIGS. 4 and 5, logic in charge of video/audio codec processing and logic for processing information collected by various sensors connected to the system-on-chip 100 are further included. can

도 4 및 도 5에 도시한 바와 같이, 복수의 프로세서들(110-130)은 서로 다른 아키텍처를 가질 수 있다. 일례로, 제1 프로세서(110)는 제1 중앙 처리 유닛(111)과 디버깅 리소스(112)를 포함할 수 있으며, 제1 중앙 처리 유닛(111)의 상태 정보가 소정의 주기마다 디버깅 리소스(112)에 저장될 수 있다. 시스템 온 칩(100)이 교착 상태에 진입하는 경우, 디버깅 마스터(162)가 제1 프로세서(110)의 디버깅 리소스(112)에 접근하여 디버깅 리소스(112)에 저장된 상태 정보들 중에서, 교착 상태가 발생한 시점 부근에 저장된 상태 정보를 디버깅 정보로 마킹하거나 읽어오는 것으로, 제1 프로세서(110)의 디버깅 정보를 확보할 수 있다.As shown in FIGS. 4 and 5 , the plurality of processors 110 - 130 may have different architectures. For example, the first processor 110 may include a first central processing unit 111 and a debugging resource 112, and state information of the first central processing unit 111 is changed to the debugging resource 112 at predetermined intervals. ) can be stored in When the system-on-chip 100 enters a deadlock state, the debugging master 162 accesses the debugging resource 112 of the first processor 110 and among the state information stored in the debugging resource 112, the deadlock occurs. Debugging information of the first processor 110 may be secured by marking or reading state information stored near the time of occurrence as debugging information.

제1 프로세서(110)와 달리, 제2 프로세서(120)와 제3 프로세서(130)는 디버깅 정보로 활용할 수 있는 상태 정보를 자동으로 저장하는 기능을 제공하지 않을 수 있다. 따라서, 시스템 온 칩(100)이 교착 상태에 진입하면, 디버깅 마스터(162)가 SoC 컨트롤러(161)로부터의 명령에 응답하여, 제2 프로세서(120)와 제3 프로세서(130) 각각으로부터 디버깅 정보를 확보할 수 있다.Unlike the first processor 110, the second processor 120 and the third processor 130 may not provide a function of automatically saving state information that can be utilized as debugging information. Accordingly, when the system-on-chip 100 enters a deadlock state, the debugging master 162 responds to a command from the SoC controller 161 and receives debugging information from the second processor 120 and the third processor 130, respectively. can be obtained.

먼저 도 4를 참조하면, 시스템 온 칩(100)이 교착 상태에 진입함으로써 복수의 프로세서들(110-130)과 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 및 메모리 컨트롤러(170) 등의 동작이 중단될 수 있다. 교착 상태에서는, 시스템 버스(180) 역시 정상적으로 동작하지 않을 수 있다.First, referring to FIG. 4 , when the system on chip 100 enters a deadlock state, the plurality of processors 110-130, the graphic processing unit 140, the digital signal processing unit 150, and the memory controller 170 etc. may be interrupted. In a deadlock state, the system bus 180 may also not operate normally.

교착 상태는 SoC 컨트롤러(161)에 의해 감지될 수 있다. 일례로, 복수의 프로세서들(110-130), 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 메모리 컨트롤러(170) 중 적어도 하나는 내부에 카운터 회로를 포함할 수 있으며, SoC 컨트롤러(161)는 일정한 주기마다 카운터 회로로부터 신호를 수신할 수 있다. 따라서, 상기 주기가 경과하였음에도 불구하고 카운터 회로로부터 신호를 수신하지 못하면, SoC 컨트롤러(161)는 시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단할 수 있다. 또는, 카운터 회로로부터의 신호 수신 여부와 관계없이 미리 정의된 특정 상황이 발생하거나, 오동작 발생을 알려주는 인터럽트가 검출되는 경우에 시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단할 수도 있다.A deadlock may be detected by the SoC controller 161 . For example, at least one of the plurality of processors 110 to 130, the graphic processing unit 140, the digital signal processing unit 150, and the memory controller 170 may include a counter circuit therein, and the SoC controller ( 161) may receive a signal from the counter circuit at regular intervals. Accordingly, if a signal is not received from the counter circuit even though the period has elapsed, the SoC controller 161 may determine that the system on chip 100 has entered a deadlock state. Alternatively, it may be determined that the system on chip 100 enters a deadlock state when a predefined specific situation occurs regardless of whether a signal from the counter circuit is received or when an interrupt indicating the occurrence of a malfunction is detected.

시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단되면, 디버깅 마스터(162)는 SoC 컨트롤러(161)의 명령에 응답하여, 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 시스템 온 칩(100)의 구성 요소들 중 적어도 하나에 전달할 수 있다. 도 5에 도시한 일 실시예에서는 디버깅 마스터(162)가 복수의 프로세서들(110-130)에 정보 추출 커맨드를 전송하는 것을 가정하였으나, 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 및 메모리 컨트롤러(170) 등에도 디버깅 정보를 확보하기 위한 정보 추출 커맨드가 전송될 수 있다.When it is determined that the system on chip 100 has entered a deadlock state, the debugging master 162 sends an information extraction command for securing debugging information to the system on chip 100 in response to a command from the SoC controller 161. It can be passed to at least one of the components. In the embodiment shown in FIG. 5, it is assumed that the debugging master 162 transmits an information extraction command to the plurality of processors 110-130, but the graphic processing unit 140, the digital signal processing unit 150, An information extraction command for securing debugging information may also be transmitted to the memory controller 170 and the like.

정보 추출 커맨드는 복수의 프로세서들(110-130)의 아키텍처에 따라 결정되는 다양한 명령어들을 포함할 수 있다. 일례로, 제1 프로세서(110)에 입력되는 정보 추출 커맨드에 의해, 디버깅 리소스(112)에 저장된 상태 정보들 중 적어도 일부가, 제1 프로세서(110)의 디버깅 정보로서 선택되어 따로 저장될 수 있다. 또한, 제2 프로세서(120)에 입력되는 정보 추출 커맨드에 의해, 서브-컴포넌트(122)가 활성화되어 제2 중앙 처리 유닛(121)으로부터 디버깅 정보를 추출하고 저장할 수 있다. 다른 일 실시예에서는, 디버깅 마스터(160)가 입력하는 정보 추출 커맨드에 의해, 제2 프로세서(120)가 강제로 디버깅 정보를 출력하도록 제어될 수도 있다. 제2 프로세서(120)가 강제 출력한 디버깅 정보는, 디버깅 마스터(160)에 의해 시스템 온 칩(100) 내부의 미리 지정된 저장 공간에 저장될 수 있다. 앞서 설명한 바와 같이, 디버깅 마스터(160)는 시스템 온 칩(100)의 재부팅에 의해 리셋되지 않는 저장 공간에 디버깅 정보를 저장할 수 있다.The information extraction command may include various commands determined according to the architecture of the plurality of processors 110 to 130 . For example, by an information extraction command input to the first processor 110, at least some of the state information stored in the debugging resource 112 may be selected as debugging information of the first processor 110 and stored separately. . In addition, the sub-component 122 is activated by an information extraction command input to the second processor 120 to extract and store debugging information from the second central processing unit 121 . In another embodiment, the second processor 120 may be controlled to forcibly output debugging information by an information extraction command input by the debugging master 160 . Debugging information forcibly output by the second processor 120 may be stored by the debugging master 160 in a predetermined storage space inside the system on chip 100 . As described above, the debugging master 160 may store debugging information in a storage space that is not reset by rebooting the system on chip 100 .

한편, 제3 프로세서(130)의 제3 중앙 처리 유닛(131)은 디버깅 마스터(160)로부터 수신한 정보 추출 커맨드에 포함된 소정의 명령어(instruction)를 실행함으로써 디버깅 정보를 추출하여 내부의 레지스터에 저장할 수 있다. 디버깅 정보는 시스템 온 칩(100)의 재부팅에 의해 리셋되지 않는 저장 공간에 저장될 수 있다. 일례로 디버깅 정보를 저장하는 상기 저장 공간은, 제3 중앙 처리 유닛(131)의 외부에 존재하는 저장 공간일 수 있다.Meanwhile, the third central processing unit 131 of the third processor 130 extracts debugging information by executing a predetermined instruction included in the information extraction command received from the debugging master 160 and stores the debugging information in an internal register. can be saved Debugging information may be stored in a storage space that is not reset by rebooting the system on chip 100 . For example, the storage space for storing debugging information may be a storage space existing outside the third central processing unit 131 .

정리하면, 복수의 프로세서들(110-130) 각각은 서로 다른 아키텍처를 가질 수 있으며, 시스템 온 칩(100)이 교착 상태에 진입한 경우 디버깅 정보를 추출하여 저장하기 위한 방법 역시 복수의 프로세서들(110-130) 간에 서로 다르게 적용될 수 있다. 본 발명의 일 실시예에서는, SoC 컨트롤러(161) 및/또는 디버깅 마스터(162)가 복수의 프로세서들(110-130) 각각의 아키텍처를 인식하여 복수의 프로세서들(110-130) 각각에 맞는 적절한 디버깅 정보 추출 및 저장 방법을 선택할 수 있다. SoC 컨트롤러(161) 및/또는 디버깅 마스터(162)는, 아키텍처에 기초하여 선택한 디버깅 정보 추출 및 저장 방법을 참조하여 생성한 정보 추출 커맨드를, 복수의 프로세서들(110-130)에 전달할 수 있다. 따라서, 복수의 프로세서들(110-130) 각각이 최적화된 방법을 이용하여 디버깅 정보를 저장할 수 있으며, 시스템 온 칩(100)이 재부팅된 이후 개발자 또는 사용자가 디버깅 정보를 이용하여 교착 상태를 발생시킨 원인을 효율적으로 분석할 수 있다.In summary, each of the plurality of processors 110 to 130 may have a different architecture, and a method for extracting and storing debugging information when the system on chip 100 enters a deadlock state also includes a plurality of processors ( 110-130) may be applied differently. In one embodiment of the present invention, the SoC controller 161 and/or the debugging master 162 recognizes the architecture of each of the plurality of processors 110-130 and appropriately appropriate for each of the plurality of processors 110-130. You can choose how to extract and save debugging information. The SoC controller 161 and/or the debugging master 162 may transmit, to the plurality of processors 110 to 130, an information extraction command generated by referring to a method of extracting and storing debugging information selected based on an architecture. Therefore, each of the plurality of processors 110 to 130 may store the debugging information using an optimized method, and after the system on chip 100 is rebooted, a developer or user may use the debugging information to cause a deadlock. Causes can be efficiently analyzed.

도 6은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.6 is a schematic block diagram of a system on a chip according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(200)은 복수의 프로세서들(210-230), 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), SoC 매니저(260), 및 메모리 컨트롤러(270) 등을 구성 요소들(210-270)로서 포함할 수 있다. 구성 요소들(210-270)은 시스템 버스(280)를 통해 서로 통신하며 동작할 수 있다. SoC 매니저(260)는 SoC 컨트롤러(261) 및 디버깅 마스터(262)를 포함할 수 있다.Referring to FIG. 6 , a system on chip 200 according to an embodiment of the present invention includes a plurality of processors 210-230, a graphic processing unit 240, a digital signal processing unit 250, and an SoC manager 260. ), and a memory controller 270 as components 210 to 270 . Components 210 to 270 may operate while communicating with each other through the system bus 280 . The SoC manager 260 may include a SoC controller 261 and a debugging master 262 .

도 6에 도시한 일 실시예에는 시스템 버스(280) 외에 디버깅 버스(290)가 시스템 온 칩(200)에 더 포함될 수 있다. 디버깅 버스(290)는 시스템 버스(290)와 물리적으로 구분되는 버스일 수 있으며, 일반적인 동작 모드에서는 비활성화 상태를 유지할 수 있다. 일 실시예에서 디버깅 버스(290)는 시스템 온 칩(200)이 교착 상태에 진입한 경우에, SoC 매니저(260)에 의해 활성화될 수 있다. 이하, 도 7 및 도 8을 참조하여, 시스템 온 칩(200)의 동작을 더욱 자세히 설명하기로 한다.In the embodiment shown in FIG. 6 , a debugging bus 290 may be further included in the system-on-chip 200 in addition to the system bus 280 . The debugging bus 290 may be a bus physically separated from the system bus 290 and may remain inactive in a normal operation mode. In one embodiment, the debugging bus 290 may be activated by the SoC manager 260 when the system on chip 200 enters a deadlock state. Hereinafter, the operation of the system on chip 200 will be described in more detail with reference to FIGS. 7 and 8 .

도 7 및 도 8은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.7 and 8 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.

도 7 및 도 8을 참조하면, 복수의 프로세서들(210-230)은 서로 다른 아키텍처를 가질 수 있다. 일례로, 제1 프로세서(210)는 제1 CPU(211)와 디버깅 리소스(212)를 포함할 수 있으며, 제1 CPU(211)는 일정한 주기마다 및/또는 교착 상태가 발생할 때의 상태 정보를 디버깅 정보로서 디버깅 리소스(212)에 저장할 수 있다. 따라서, 시스템 온 칩(200)이 교착 상태에 진입한 경우, 제1 프로세서(210)의 디버깅 정보는 시스템 온 칩(200)이 재부팅되기 전에 디버깅 리소스(212)로부터 추출되어 소정의 저장 공간에 저장될 수 있다. 시스템 온 칩(200)의 재부팅이 완료되면, 상기 저장 공간에 저장된 디버깅 정보는 사용자 또는 개발자에게 제공될 수 있다. 즉, 제1 프로세서(210)에서는 디버깅 리소스(212)에 저장된 상태 정보들 중 일부를 선택하여 따로 저장하는 것만으로, 디버깅 정보를 확보할 수 있다.Referring to FIGS. 7 and 8 , the plurality of processors 210 to 230 may have different architectures. For example, the first processor 210 may include a first CPU 211 and a debugging resource 212, and the first CPU 211 provides state information at regular intervals and/or when a deadlock occurs. Debugging information may be stored in the debugging resource 212 . Therefore, when the system on chip 200 enters a deadlock state, the debugging information of the first processor 210 is extracted from the debugging resource 212 and stored in a predetermined storage space before the system on chip 200 is rebooted. It can be. When rebooting of the system on chip 200 is completed, debugging information stored in the storage space may be provided to a user or developer. That is, the first processor 210 can secure debugging information only by selecting and separately storing some of the state information stored in the debugging resource 212 .

제2 프로세서(220)와 제3 프로세서(230)는 제1 프로세서(210)와 달리 디버깅에 필요한 디버깅 정보를 자동으로 저장하는 기능을 제공하지 않을 수 있다. 따라서, 시스템 온 칩(200)이 교착 상태에 진입하면, 디버깅 마스터(262)가 SoC 컨트롤러(261)로부터의 명령에 응답하거나 또는 디버깅 마스터(262)가 스스로 판단하여, 제2 프로세서(220)와 제3 프로세서(230) 각각으로부터 디버깅 정보를 확보할 수 있다.Unlike the first processor 210, the second processor 220 and the third processor 230 may not provide a function of automatically storing debugging information necessary for debugging. Therefore, when the system on chip 200 enters a deadlock state, the debugging master 262 responds to a command from the SoC controller 261 or the debugging master 262 determines by itself, and the second processor 220 and Debugging information may be secured from each of the third processors 230 .

먼저 도 7을 참조하면, 시스템 온 칩(100)이 교착 상태에 진입함으로써 복수의 프로세서들(210-230)은 물론, 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), 및 메모리 컨트롤러(270) 등의 동작이 중단될 수 있다. 교착 상태에서는, 시스템 버스(280) 역시 동작이 중단될 수 있다.Referring first to FIG. 7 , when the system on chip 100 enters a deadlock state, the plurality of processors 210-230 as well as the graphic processing unit 240, the digital signal processing unit 250, and the memory controller ( 270) may be interrupted. In a deadlock condition, system bus 280 may also cease operation.

SoC 컨트롤러(261)는 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 생성하여 디버깅 마스터(262)에 전달할 수 있다. 또는, 다른 일 실시예에서 SoC 컨트롤러(261)가 디버깅 정보를 확보하기 위한 명령만을 디버깅 마스터(262)에 전달하고, 디버깅 마스터(262)가 정보 추출 커맨드를 생성할 수도 있다. 즉, 본 발명의 일 실시예에서, SoC 컨트롤러(261)와 디버깅 마스터(262) 중 적어도 하나에 의해, 정보 추출 커맨드가 생성될 수 있다.The SoC controller 261 may generate and transmit an information extraction command for securing debugging information to the debugging master 262 . Alternatively, in another embodiment, the SoC controller 261 may transmit only a command for securing debugging information to the debugging master 262, and the debugging master 262 may generate an information extraction command. That is, in an embodiment of the present invention, an information extraction command may be generated by at least one of the SoC controller 261 and the debugging master 262 .

디버깅 마스터(262)는 디버깅 버스(290)를 통해 복수의 프로세서들(210-230)에 정보 추출 커맨드를 입력할 수 있다. 디버깅 버스(290)는 시스템 온 칩(200)이 교착 상태에 진입한 이후 활성화될 수 있다. 한편, 도 7 및 도 8에 도시한 일 실시예와 달리, 정보 추출 커맨드는 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), 및 메모리 컨트롤러(270) 등의 다른 구성 요소들에도 입력될 수 있다. 정보 추출 커맨드를 입력할 구성 요소들의 종류와 개수는, SoC 컨트롤러(261)에 의해 결정될 수 있다.The debugging master 262 may input an information extraction command to the plurality of processors 210 to 230 through the debugging bus 290 . Debugging bus 290 may become active after system on chip 200 enters a deadlock state. Meanwhile, unlike the embodiment shown in FIGS. 7 and 8 , the information extraction command may be input to other elements such as the graphic processing unit 240, the digital signal processing unit 250, and the memory controller 270. can The type and number of elements to which the information extraction command is to be input may be determined by the SoC controller 261 .

복수의 프로세서들(210-230)은 서로 다른 아키텍처를 가지며, 따라서 복수의 프로세서들(210-230) 각각에 입력되는 정보 추출 커맨드는 서로 다른 명령어들을 포함할 수 있다. 일례로, 제1 프로세서(210)에 입력되는 정보 추출 커맨드는, 디버깅 리소스(212)에 저장된 상태 정보들 중에서 디버깅 정보를 선택하고, 선택한 디버깅 정보를 별도의 저장 공간에 기록하는 명령어를 포함할 수 있다. The plurality of processors 210 to 230 have different architectures, and therefore, information extraction commands input to each of the plurality of processors 210 to 230 may include different instructions. For example, the information extraction command input to the first processor 210 may include a command for selecting debugging information from state information stored in the debugging resource 212 and recording the selected debugging information in a separate storage space. there is.

제2 프로세서(220)는 제1 프로세서(210)와 달리 디버깅 리소스(212)를 포함하지 않을 수 있다. 제2 프로세서(220)에 입력되는 정보 추출 커맨드는, 제2 중앙 처리 유닛(221)이 디버깅 정보를 출력하도록 강제하는 명령어를 포함하거나, 또는 서브-컴포넌트(222)를 활성화시켜 제2 중앙 처리 유닛(221)으로부터 디버깅 정보를 추출하도록 제어하는 명령어를 포함할 수 있다. 제3 프로세서(230)에 입력되는 정보 추출 커맨드는 제3 중앙 처리 유닛(231)에 의해 처리되어 제3 중앙 처리 유닛(231)이 디버깅 정보를 소정의 저장 공간에 기록하도록 제어하는 명령어들을 포함할 수 있다. 즉, 상기 예시한 바와 같이, 본 발명에서는 복수의 프로세서들(210-230) 각각의 아키텍처에 의해 결정되는 명령어들을 갖는 서로 다른 정보 추출 커맨드들이, 복수의 프로세서들(210-230)에 입력될 수 있다.Unlike the first processor 210 , the second processor 220 may not include a debugging resource 212 . The information extraction command input to the second processor 220 includes a command forcing the second central processing unit 221 to output debugging information, or activates the sub-component 222 to activate the second central processing unit 222. It may include a command for controlling extraction of debugging information from 221. The information extraction command input to the third processor 230 is processed by the third central processing unit 231 to include instructions for controlling the third central processing unit 231 to record debugging information in a predetermined storage space. can That is, as exemplified above, in the present invention, different information extraction commands having instructions determined by the architecture of each of the plurality of processors 210-230 may be input to the plurality of processors 210-230. there is.

도 9 및 도 10은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.9 and 10 are diagrams provided to explain the operation of the system on chip according to an embodiment of the present invention.

먼저 도 9를 참조하면, 도 9에 도시한 일 실시예에 따른 시스템 온 칩(300)에서는 복수의 프로세서들(310-330) 각각이 디버깅 마스터(313, 323, 333)를 포함할 수 있다. 시스템 온 칩(300)이 교착 상태에 진입하면, SoC 컨트롤러(360)는 복수의 프로세서들(310-330) 각각에 정보 추출 커맨드를 입력할 수 있다. 정보 추출 커맨드는, 프로세서들(310-330)이 교착 상태에 진입했을 때의 상태 정보에 대응하는 디버깅 정보를 저장 및/또는 추출하기 위한 명령어들을 포함할 수 있다. 교착 상태에서는 시스템 버스(380)가 정상적으로 동작하지 않을 수 있으므로, 시스템 온 칩(300)은 시스템 버스(380)를 파티션 분할하고 그 일부를 교착 상태에서만 동작하는 디버그 전용 버스로 할당할 수 있다.Referring first to FIG. 9 , in the system on chip 300 according to the embodiment shown in FIG. 9 , each of the plurality of processors 310 to 330 may include a debugging master 313 , 323 , and 333 . When the system on chip 300 enters a deadlock state, the SoC controller 360 may input an information extraction command to each of the plurality of processors 310 to 330 . The information extraction command may include instructions for storing and/or extracting debugging information corresponding to state information when the processors 310 to 330 enter a deadlock state. Since the system bus 380 may not normally operate in a deadlock state, the system on chip 300 may divide the system bus 380 into partitions and allocate a part of the system bus 380 as a dedicated debug bus that operates only in a deadlock state.

제1 프로세서(310)의 디버깅 마스터(313)가 정보 추출 커맨드를 입력받으면, 디버깅 마스터(313)는 주기적으로, 및/또는 제1 프로세서(310)가 교착 상태에 진입했을 때 디버깅 리소스(312)에 저장된 상태 정보를 디버깅 정보로 마킹할 수 있다. 디버깅 마스터(313)는 마킹한 디버깅 정보를, 시스템 온 칩(300)의 재부팅과 함께 리셋되지 않는 저장 공간에 저장해둘 수 있다. 제2 프로세서(320)의 디버깅 마스터(323)는 정보 추출 커맨드에 응답하여, 서브 컴포넌트(322)를 활성화시킬 수 있다. 활성화된 서브 컴포넌트(322)는 제2 중앙 처리 유닛(321)으로부터 디버깅 정보를 전달받아 저장할 수 있다. 또는, 디버깅 마스터(323)가 정보 추출 커맨드에 응답하여 직접 제2 중앙 처리 유닛(321)에 접근함으로써, 제2 중앙 처리 유닛(321)이 디버깅 정보를 출력하도록 강제할 수 있다. 제3 프로세서(330)의 디버깅 마스터(333)는 정보 추출 커맨드를 입력받으면, 제3 중앙 처리 유닛(331)이 디버깅 정보를 추출하도록 제어하는 명령어를 제3 중앙 처리 유닛(331)에 전달할 수 있다. 상기와 같은 과정들을 통해 추출된 디버깅 정보는, 시스템 온 칩(300)의 재부팅에 의해 리셋되지 않는 저장 공간에 저장되며, 시스템 온 칩(300)이 재부팅된 이후 디버깅 작업에 활용될 수 있다.When the debugging master 313 of the first processor 310 receives an information extraction command, the debugging master 313 periodically and/or when the first processor 310 enters a deadlock state, the debugging resource 312 State information stored in can be marked as debugging information. The debugging master 313 may store the marked debugging information in a storage space that is not reset along with rebooting of the system on chip 300 . The debugging master 323 of the second processor 320 may activate the subcomponent 322 in response to the information extraction command. The activated subcomponent 322 may receive and store debugging information from the second central processing unit 321 . Alternatively, the debugging master 323 may force the second central processing unit 321 to output debugging information by directly accessing the second central processing unit 321 in response to the information extraction command. When receiving an information extraction command, the debugging master 333 of the third processor 330 may transmit a command for controlling the third central processing unit 331 to extract debugging information to the third central processing unit 331. . Debugging information extracted through the above processes is stored in a storage space that is not reset by rebooting the system-on-chip 300, and can be used for debugging after the system-on-chip 300 is rebooted.

도 10에 도시한 일 실시예에 따른 시스템 온 칩(400)의 동작은 도 9에 도시한 일 실시예에 따른 시스템 온 칩(300)의 동작과 유사할 수 있다. 다만, 도 10에 도시한 일 실시예에서는 디버깅 버스(490)가 시스템 버스(480)와 물리적으로 분리되는 별도의 버스로 마련될 수 있다. 디버깅 버스(490)는 일반적인 동작에서는 활성화되지 않을 수 있으며, 시스템 온 칩(400)이 교착 상태에 진입한 경우 등과 같이, SoC 컨트롤러(460)에 의해 활성화 명령이 전달되는 경우에만 활성화될 수 있다. 시스템 온 칩(400)이 교착 상태에 진입하면, SoC 컨트롤러(460)는 디버깅 버스(490)를 통해 복수의 프로세서들(410-430) 각각에 포함된 디버깅 마스터(413, 423, 433)에 정보 추출 커맨드를 입력할 수 있다. 디버깅 마스터(413, 423, 433)는 정보 추출 커맨드에 포함된 명령어를 이용하여, 제1 내지 제3 중앙 처리 유닛들(311, 321, 331) 각각으로부터 디버깅 정보를 확보할 수 있다.An operation of the system on a chip 400 according to an embodiment shown in FIG. 10 may be similar to an operation of the system on a chip 300 according to an embodiment shown in FIG. 9 . However, in the embodiment shown in FIG. 10 , the debugging bus 490 may be provided as a separate bus physically separated from the system bus 480 . The debugging bus 490 may not be activated in normal operation, and may be activated only when an activation command is transmitted by the SoC controller 460, such as when the system on chip 400 enters a deadlock state. When the system-on-chip 400 enters a deadlock state, the SoC controller 460 sends information to the debugging masters 413, 423, and 433 included in each of the plurality of processors 410-430 through the debugging bus 490. You can enter an extraction command. The debugging masters 413 , 423 , and 433 may obtain debugging information from each of the first to third central processing units 311 , 321 , and 331 by using a command included in the information extraction command.

도 11 내지 도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 흐름도들이다.11 to 14 are flowcharts provided to explain the operation of the system on chip according to an embodiment of the present invention.

먼저 도 11을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩의 동작은, 교착 상태를 감지하는 것으로 시작할 수 있다(S10). 교착 상태는 시스템 온 칩에 포함된 SoC 컨트롤러 등에 의해 감지될 수 있다. 일례로 시스템 온 칩에 포함되는 복수의 구성 요소들은 내부에 카운터 회로를 포함할 수 있으며, 카운터 회로는 소정의 주기마다 SoC 컨트롤러에 신호를 전송할 수 있다. SoC 컨트롤러는 상기 주기가 경과하였음에도 불구하고 카운터 회로로부터 신호를 수신하지 못할 때, 교착 상태가 발생한 것으로 판단할 수 있다. 또한, 시스템 온 칩에 포함되는 구성 요소들 각각이, 이상 동작을 감지하여 인터럽트를 생성한 경우에도 교착 상태가 발생한 것으로 인식할 수 있다.Referring first to FIG. 11 , an operation of the system on a chip according to an embodiment of the present invention may start by detecting a deadlock (S10). A deadlock can be detected by a SoC controller or the like included in a system-on-a-chip. For example, a plurality of components included in the system-on-chip may include a counter circuit therein, and the counter circuit may transmit a signal to the SoC controller at predetermined intervals. When the SoC controller does not receive a signal from the counter circuit even though the period has elapsed, it may be determined that a deadlock has occurred. In addition, even when each of the components included in the system-on-chip detects an abnormal operation and generates an interrupt, it may be recognized that a deadlock has occurred.

교착 상태가 감지되면, SoC 컨트롤러는 복수의 프로세서들 각각의 아키텍처에 맞는 커맨드를 전송할 수 있다(S20). 일 실시예에서 상기 커맨드는 시스템 온 칩이 교착 상태에 진입했을 때 복수의 프로세서들 각각의 상태를 나타내는 디버깅 정보를 추출하기 위한 명령어들을 포함하는 정보 추출 커맨드일 수 있다. 실시예들에 따라, 정보 추출 커맨드는 SoC 컨트롤러 및 디버깅 마스터를 통해 프로세서들에 전송될 수 있으며, 프로세서들을 제외한 나머지 구성 요소들에도 정보 추출 커맨드가 전송될 수 있다.When deadlock is detected, the SoC controller may transmit a command suitable for each architecture of a plurality of processors (S20). In one embodiment, the command may be an information extraction command including instructions for extracting debugging information indicating a state of each of a plurality of processors when a system-on-chip enters a deadlock state. According to embodiments, the information extraction command may be transmitted to processors through the SoC controller and the debugging master, and the information extraction command may also be transmitted to components other than the processors.

정보 추출 커맨드를 수신한 프로세서들은, 그에 응답하여 디버깅 정보를 저장 및/또는 출력할 수 있다(S30). 앞서 설명한 바와 같이, 프로세서들 각각이 디버깅 정보를 저장 및/또는 출력하는 방법은 프로세서들 각각의 아키텍처에 따라 결정될 수 있다. 일례로, 서브 컴포넌트를 포함하는 프로세서의 경우 정보 추출 커맨드에 응답하여 서브 컴포넌트가 활성화될 수 있다. 활성화된 서브 컴포넌트는 프로세서에 포함된 CPU로부터 디버깅 정보를 추출하고 이를 소정의 저장 공간에 저장할 수 있다. 서브 컴포넌트를 포함하지 않는 프로세서의 경우, 정보 추출 커맨드에 포함된 명령어를 CPU가 실행하여 디버깅 정보를 스스로 저장 공간에 저장할 수 있다. 상기 저장 공간은 시스템 온 칩이 재부팅되는 경우에도 리셋되지 않는 영역일 수 있다.Processors receiving the information extraction command may store and/or output debugging information in response thereto (S30). As described above, a method of storing and/or outputting debugging information by each of the processors may be determined according to the architecture of each of the processors. For example, in the case of a processor including subcomponents, the subcomponents may be activated in response to an information extraction command. The activated subcomponent may extract debugging information from the CPU included in the processor and store it in a predetermined storage space. In the case of a processor not including a subcomponent, the CPU may execute a command included in the information extraction command to store debugging information in a storage space by itself. The storage space may be an area that is not reset even when the system on chip is rebooted.

디버깅 정보가 디버깅 마스터에 의해 상기 영역에 저장되면, 시스템 온 칩이 재부팅될 수 있다(S40). 다만, 실시예들에 따라, 교착 상태에 진입한 일부 구성 요소들만 재부팅될 수도 있다. 시스템 온 칩이 복수의 프로세서들을 포함하고 복수의 프로세서들을 그룹화하여 관리하는 경우, 그룹 단위로 재부팅이 실행될 수도 있다.When the debugging information is stored in the area by the debugging master, the system on chip may be rebooted (S40). However, according to embodiments, only some components that have entered deadlock may be rebooted. When a system on a chip includes a plurality of processors and groups and manages the plurality of processors, rebooting may be performed in units of groups.

재부팅이 완료되면, 시스템 온 칩은 S30 단계에서 저장한 디버깅 정보를 개발자 또는 사용자에게 제공하며, 개발자 또는 사용자는 디버깅 정보를 이용하여 디버깅 작업을 진행할 수 있다(S50). 따라서, 시스템 온 칩의 교착 상태를 유발한 명령어를 빠르게 파악할 수 있으므로, 개발자 또는 사용자의 디버깅 작업 효율을 개선할 수 있다.When the rebooting is completed, the system-on-chip provides the debugging information stored in step S30 to the developer or user, and the developer or user can proceed with debugging using the debugging information (S50). Accordingly, since it is possible to quickly identify an instruction causing system-on-chip deadlock, it is possible to improve debugging work efficiency of a developer or user.

도 12는 도 11의 S30 단계가 제1 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 정보 추출 커맨드를 수신한 프로세서는, 디버깅 리소스에 접근할 수 있다(S31). 디버깅 리소스는 프로세서에 포함되는 중앙 처리 유닛, 또는 코어 등이 소정의 주기 또는 교착 상태 발생 시에 상태 정보를 기록하는 공간일 수 있다. 정보 추출 커맨드를 수신하면, 프로세서는 교착 상태 발생시에 디버깅 리소스에 저장된 상태 정보를 검색할 수 있다(S32). 일례로, 교착 상태 발생 시점 부근의 상태 정보가 S32 단계에서 검색될 수 있다.FIG. 12 may be a flowchart for explaining in detail an embodiment in which step S30 of FIG. 11 is executed in a processor having a first architecture. The processor receiving the information extraction command may access debugging resources (S31). The debugging resource may be a space in which a central processing unit or a core included in a processor records state information at a predetermined period or when a deadlock occurs. Upon receiving the information extraction command, the processor may search state information stored in the debugging resource when a deadlock occurs (S32). For example, state information around the deadlock occurrence point may be retrieved in step S32.

프로세서는 검색한 상태 정보를 디버깅 정보로서 저장할 수 있다(S33). 앞서 설명한 바와 같이, 디버깅 정보는 시스템 온 칩의 재부팅과 관계없이, 리셋되지 않는 저장 공간에 기록될 수 있다.The processor may store the retrieved state information as debugging information (S33). As described above, debugging information may be recorded in a storage space that is not reset regardless of system-on-chip rebooting.

도 13은 도 11의 S30 단계가 제2 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 제2 아키텍처는 앞서 도 12를 참조하여 설명한 제1 아키텍처와 다를 수 있다. FIG. 13 may be a flowchart for explaining in detail an embodiment in which step S30 of FIG. 11 is executed in a processor having a second architecture. The second architecture may be different from the first architecture described above with reference to FIG. 12 .

도 12에 도시한 일 실시예에서는, 정보 추출 커맨드에 의해 프로세서에 포함된 서브 컴포넌트가 활성화될 수 있다(S34). S34 단계에서 활성화되는 서브 컴포넌트는, 교착 상태에 진입한 프로세서의 중앙 처리 유닛(CPU) 또는 코어 등에 접근하여 특정 정보를 추출하는 로직일 수 있다. 즉, 활성화된 서브 컴포넌트는 중앙 처리 유닛(CPU)으로부터 디버깅 정보를 추출하여 저장할 수 있다(S35). 디버깅 정보는 시스템 온 칩의 재부팅과 관계없이, 리셋되지 않는 저장 공간에 기록될 수 있다.In the embodiment shown in FIG. 12, a subcomponent included in the processor may be activated by an information extraction command (S34). The subcomponent activated in step S34 may be a logic that extracts specific information by accessing a central processing unit (CPU) or core of a processor that has entered a deadlock state. That is, the activated subcomponent may extract and store debugging information from the central processing unit (CPU) (S35). Debugging information can be written to a storage space that is not reset regardless of system-on-chip rebooting.

도 14는 도 11의 S30 단계가 제3 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 제3 아키텍처는 앞서 도 11 및 도 12를 참조하여 설명한 제1 아키텍처 및 제2 아키텍처와 다를 수 있다.FIG. 14 may be a flowchart for explaining in detail an embodiment in which step S30 of FIG. 11 is executed in a processor having a third architecture. The third architecture may be different from the first architecture and the second architecture previously described with reference to FIGS. 11 and 12 .

도 14에 도시한 일 실시예에서는, 정보 추출 커맨드에 포함된 소정의 명령어가 실행될 수 있다(S36). 일례로 상기 명령어는 디버깅 마스터 또는 프로세서에 의해 정보 추출 커맨드로부터 실행될 수 있다. 상기 명령어가 실행되면, 프로세서의 중앙 처리 유닛 또는 코어 등으로부터 디버깅 정보가 추출되어 프로세서의 내부 레지스터에 저장될 수 있다(S37). 동시에, 상기 디버깅 정보는 프로세서 외부의 저장 공간에 기록될 수 있다(S38). 도 12 및 도 13을 참조하여 설명한 바와 마찬가지로, 디버깅 정보는 시스템 온 칩의 재부팅에 의해 리셋되지 않는 저장 공간에 기록될 수 있다.In the embodiment shown in FIG. 14, a predetermined command included in the information extraction command may be executed (S36). For example, the command may be executed from an information extraction command by a debugging master or processor. When the command is executed, debugging information may be extracted from the central processing unit or core of the processor and stored in an internal register of the processor (S37). At the same time, the debugging information may be recorded in a storage space outside the processor (S38). As described with reference to FIGS. 12 and 13 , debugging information may be recorded in a storage space that is not reset by system-on-chip rebooting.

도 1 내지 도 14를 참조하여 설명한 실시예들은, 시스템 온 칩이 교착 상태에 진입한 경우는 물론, 개발자 또는 사용자가 개발 및/또는 유지, 보수 목적으로 디버깅 정보를 필요로 하는 경우에도 적용될 수 있다. 즉, 시스템 온 칩이 교착 상태에 진입하지 않은 경우에도, 디버깅 정보를 필요로 하는 개발자 또는 사용자가 정보 추출 커맨드를 출력하도록 SoC 컨트롤러를 제어하면, 복수의 프로세서들을 포함하는 구성 요소들이 정보 추출 커맨드를 입력받아 디버깅 정보를 저장할 수 있다. 개발자 또는 사용자는 저장된 상기 디버깅 정보를 이용하여, 교착 상태 진입 여부와 관계없이 디버깅 작업을 진행할 수도 있다.The embodiments described with reference to FIGS. 1 to 14 can be applied not only when the system on chip enters a deadlock state, but also when a developer or user needs debugging information for development and/or maintenance. . That is, even if the system-on-chip does not enter a deadlock state, if a developer or a user who needs debugging information controls the SoC controller to output an information extraction command, components including a plurality of processors may issue an information extraction command. You can receive input and save debugging information. A developer or a user may use the stored debugging information to perform a debugging operation regardless of whether or not a deadlock is entered.

도 15는 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 전자 기기를 간단하게 나타낸 블록도이다.15 is a block diagram simply illustrating an electronic device including a system on a chip according to an embodiment of the present invention.

도 15에 도시한 실시예에 따른 컴퓨터 장치(1000)는 이미지 센서(1010), 디스플레이(1020), 메모리(1030), 시스템 온 칩(1040), 및 포트(1050) 등을 포함할 수 있다. 이외에 컴퓨터 장치(1000)는 유무선 통신 장치, 전원 장치 등을 더 포함할 수 있다. 도 15에 도시된 구성 요소 가운데, 포트(1050)는 컴퓨터 장치(1000)가 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하기 위해 제공되는 장치일 수 있다. 컴퓨터 장치(1000)는 일반적인 데스크톱 컴퓨터나 랩톱 컴퓨터 외에 스마트폰, 태블릿 PC, 스마트 웨어러블 기기 등을 모두 포괄하는 개념일 수 있다.A computer device 1000 according to the embodiment shown in FIG. 15 may include an image sensor 1010, a display 1020, a memory 1030, a system on chip 1040, and a port 1050. In addition, the computer device 1000 may further include a wired/wireless communication device, a power supply, and the like. Among the components shown in FIG. 15 , the port 1050 may be a device provided for the computer device 1000 to communicate with a video card, a sound card, a memory card, a USB device, and the like. The computer device 1000 may be a concept encompassing all of a smart phone, a tablet PC, a smart wearable device, and the like, in addition to a general desktop computer or laptop computer.

시스템 온 칩(1040)는 특정 연산이나 명령어 및 태스크 등을 수행할 수 있다. 시스템 온 칩(1040)은 버스(1060)를 통해 이미지 센서(1010), 디스플레이(1020), 메모리 장치(1030)는 물론, 포트(1050)에 연결된 다른 장치들과 통신할 수 있다. 시스템 온 칩(1040)은 서로 다른 아키텍처에 따라 설계되는 복수의 프로세서들을 포함할 수 있으며, 교착 상태에 진입할 경우 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따라 디버깅 정보를 확보할 수 있다.The system-on-a-chip 1040 may perform specific operations, commands, and tasks. System-on-a-chip 1040 may communicate with image sensor 1010 , display 1020 , memory device 1030 , as well as other devices connected to port 1050 via bus 1060 . The system-on-chip 1040 may include a plurality of processors designed according to different architectures, and may secure debugging information according to various embodiments described with reference to FIGS. 1 to 14 when entering a deadlock state. there is.

메모리(1030)는 컴퓨터 장치(1000)의 동작에 필요한 데이터, 또는 멀티미디어 데이터 등을 저장하는 저장 매체일 수 있다. 메모리(1030)는 랜덤 액세스 메모리(RAM)와 같은 휘발성 메모리나, 또는 플래시 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 또한 메모리(1030)는 저장장치로서 솔리드 스테이트 드라이브(SSD), 하드 디스크 드라이브(HDD), 및 광학 드라이브(ODD) 중 적어도 하나를 포함할 수도 있다. 입출력 장치(1020)는 사용자에게 제공되는 키보드, 마우스, 터치스크린 등과 같은 입력 장치 및 디스플레이, 오디오 출력부 등과 같은 출력 장치를 포함할 수 있다. The memory 1030 may be a storage medium that stores data necessary for the operation of the computer device 1000 or multimedia data. The memory 1030 may include volatile memory such as random access memory (RAM) or non-volatile memory such as flash memory. Also, the memory 1030 may include at least one of a solid state drive (SSD), a hard disk drive (HDD), and an optical drive (ODD) as a storage device. The input/output device 1020 may include an input device provided to a user, such as a keyboard, a mouse, and a touch screen, and an output device such as a display and an audio output unit.

이미지 센서(1010)는 패키지 기판에 실장되어 버스(1060) 또는 다른 통신 수단에 의해 프로세서(1040)와 연결될 수 있다. 이미지 센서(1010)는 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따른 형태로 컴퓨터 장치(1000)에 채용될 수 있다.The image sensor 1010 may be mounted on a package substrate and connected to the processor 1040 through a bus 1060 or other communication means. The image sensor 1010 may be employed in the computer device 1000 in a form according to various embodiments described with reference to FIGS. 1 to 14 .

도 16은 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 자율 주행 차량을 간단하게 나타낸 블록도이다.16 is a simplified block diagram of an autonomous vehicle including a system on a chip according to an embodiment of the present invention.

도 16을 참조하면, 자율 주행 차량(1100)은 시스템 온 칩(1110), 비전 센서(1120), 차체 제어 모듈(Body Control Module, 1130), 메모리(1140), 및 통신 모듈(1150) 등을 포함할 수 있다. 시스템 온 칩(1110)은 서로 다른 아키텍처에 따라 설계되는 복수의 프로세서들을 포함할 수 있으며, 교착 상태에 진입할 경우 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따라 디버깅 정보를 확보할 수 있다. Referring to FIG. 16 , an autonomous vehicle 1100 includes a system on chip 1110, a vision sensor 1120, a body control module 1130, a memory 1140, and a communication module 1150. can include The system-on-chip 1110 may include a plurality of processors designed according to different architectures, and may secure debugging information according to various embodiments described with reference to FIGS. 1 to 14 when entering a deadlock state. there is.

시스템 온 칩(1110)은 비전 센서(1120), 차체 제어 모듈(1130), 메모리(1140), 및 통신 모듈(1150)을 제어하여 자율 주행 차량(1100)의 자율 주행 기능을 제공할 수 있다. 일례로 시스템 온 칩(1110)은 비전 센서(1120)가 수집한 차량 주변의 시각 정보와, 통신 모듈(1150)을 통해 수신한 교통 정보 등을 이용하여 주행 환경을 판단하고, 주행 환경에 기초하여 차량의 구동계와 함께 차체 제어 모듈(1130)을 제어할 수 있다. The system on chip 1110 may provide an autonomous driving function of the autonomous vehicle 1100 by controlling the vision sensor 1120, the body control module 1130, the memory 1140, and the communication module 1150. For example, the system on chip 1110 determines the driving environment by using visual information around the vehicle collected by the vision sensor 1120 and traffic information received through the communication module 1150, and based on the driving environment The vehicle body control module 1130 may be controlled together with the driving system of the vehicle.

본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.The present invention is not limited by the above-described embodiments and accompanying drawings, but is intended to be limited by the appended claims. Therefore, various forms of substitution, modification, and change will be possible by those skilled in the art within the scope of the technical spirit of the present invention described in the claims, which also falls within the scope of the present invention. something to do.

10, 20, 30, 100, 200, 300, 400: 시스템 온 칩
11, 12, 13, 21, 31, 110, 120, 130, 210, 220, 230, 310, 320, 330, 410, 420, 430: 프로세서
16, 26, 160, 260: SoC 매니저
27, 37, 161, 261, 360, 460: SoC 컨트롤러
28, 35, 162, 262, 313, 323, 333, 413, 423, 433: 디버깅 마스터
10, 20, 30, 100, 200, 300, 400: System on a Chip
11, 12, 13, 21, 31, 110, 120, 130, 210, 220, 230, 310, 320, 330, 410, 420, 430: Processor
16, 26, 160, 260: SoC manager
27, 37, 161, 261, 360, 460: SoC controller
28, 35, 162, 262, 313, 323, 333, 413, 423, 433: Debugging Master

Claims (10)

교착 상태(Deadlock)에서 수신한 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들;
상기 복수의 프로세서들에 연결되는 시스템 버스(bus); 및
상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저; 를 포함하며,
상기 SoC 매니저는 상기 교착 상태가 발생하면 상기 복수의 프로세서들 각각에 대한 마스터 장치로 동작하며, 상기 복수의 프로세서들 각각에서 상기 SoC 매니저와 연결되고 슬레이브 인터페이스로 동작하는 인터페이스를 통해 상기 정보 추출 커맨드를 상기 복수의 프로세서들에 전송하는 시스템 온 칩.
A plurality of processors that store debugging information in response to an information extraction command received in a deadlock state, and at least some of the processors have different architectures;
a system bus connected to the plurality of processors; and
a System on Chip (SoC) manager configured to differently generate the information extraction command for at least some of the plurality of processors according to the architecture of each of the plurality of processors when the deadlock occurs; Including,
When the deadlock occurs, the SoC manager operates as a master device for each of the plurality of processors, and executes the information extraction command through an interface connected to the SoC manager and operating as a slave interface in each of the plurality of processors. A system on a chip that transmits to the plurality of processors.
제1항에 있어서,
상기 SoC 매니저는, 상기 복수의 프로세서들 각각이 상기 정보 추출 커맨드에 응답하여 상기 디버깅 정보를 저장하면, 상기 복수의 프로세서들 및 상기 시스템 버스를 리셋하는 시스템 온 칩.
According to claim 1,
wherein the SoC manager resets the plurality of processors and the system bus when each of the plurality of processors stores the debugging information in response to the information extraction command.
제1항에 있어서,
상기 시스템 버스와 서로 물리적으로 분리되거나, 파티션 분할에 의해 서로 논리적으로 분리되는 디버깅 버스; 를 더 포함하는 시스템 온 칩.
According to claim 1,
a debugging bus physically separated from the system bus or logically separated from each other by partitioning; A system on a chip further comprising a.
제3항에 있어서,
상기 SoC 매니저는, 상기 교착 상태가 감지되면 상기 디버깅 버스를 통해 상기 복수의 프로세서들 각각에 상기 정보 추출 커맨드를 전송하는 시스템 온 칩.
According to claim 3,
wherein the SoC manager transmits the information extraction command to each of the plurality of processors through the debugging bus when the deadlock is detected.
제1항에 있어서,
상기 SoC 매니저는, 상기 교착 상태를 감지하는 SoC 컨트롤러, 및 상기 정보 추출 커맨드를 상기 복수의 프로세서들에 전송하는 디버깅 마스터를 포함하는 시스템 온 칩.
According to claim 1,
The SoC manager includes a SoC controller that detects the deadlock state, and a debugging master that transmits the information extraction command to the plurality of processors.
제1항에 있어서,
상기 복수의 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 상기 디버깅 정보를 저장하는 디버깅 마스터를 포함하는 시스템 온 칩.
According to claim 1,
Each of the plurality of processors includes a debugging master configured to store the debugging information in response to the information extraction command.
제1 인터페이스와 제2 인터페이스, 및 중앙 처리 유닛을 각각 포함하는 복수의 프로세서들;
상기 제1 인터페이스에 연결되는 시스템 버스;
상기 제2 인터페이스에 연결되는 디버깅 마스터; 및
상기 시스템 버스를 통해 상기 복수의 프로세서들과 연결되며, 상기 복수의 프로세서들에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러; 를 포함하고,
상기 디버깅 마스터는, 상기 교착 상태가 발생하면 상기 SoC 컨트롤러의 명령에 응답하여 상기 복수의 프로세서들 각각의 아키텍처에 기초하여 생성된 정보 추출 커맨드를 상기 복수의 프로세서들에 전송하며,
상기 제2 인터페이스는 상기 디버깅 마스터에 대한 슬레이브 인터페이스로 동작하는 시스템 온 칩.
a plurality of processors each including a first interface, a second interface, and a central processing unit;
a system bus connected to the first interface;
a debugging master connected to the second interface; and
an SoC controller connected to the plurality of processors through the system bus and detecting a deadlock state occurring in the plurality of processors; including,
The debugging master transmits an information extraction command generated based on the architecture of each of the plurality of processors to the plurality of processors in response to a command of the SoC controller when the deadlock occurs,
The second interface operates as a slave interface for the debugging master.
삭제delete 제1 아키텍처에 따라 설계된 제1 프로세서;
상기 제1 아키텍처와 다른 제2 아키텍처에 따라 설계된 제2 프로세서;
상기 제1 및 제2 프로세서들 중 적어도 하나에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러; 및
상기 제1 및 제2 프로세서들 각각의 슬레이브 인터페이스와 연결되며, 상기 교착 상태가 발생하면 상기 제1 및 제2 프로세서들이 리셋되기 전에 상기 슬레이브 인터페이스를 통해 상기 제1 및 제2 프로세서들에 정보 추출 커맨드를 전송하여 디버깅 정보를 확보하는 디버깅 마스터; 를 포함하며,
상기 제1 및 제2 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 서로 다른 방법으로 상기 디버깅 정보를 저장하는 시스템 온 칩.
a first processor designed according to the first architecture;
a second processor designed according to a second architecture different from the first architecture;
an SoC controller detecting a deadlock state occurring in at least one of the first and second processors; and
It is connected to a slave interface of each of the first and second processors, and when the deadlock occurs, an information extraction command to the first and second processors through the slave interface before the first and second processors are reset. Debugging master to obtain debugging information by sending; Including,
Each of the first and second processors stores the debugging information in different ways in response to the information extraction command.
서로 다른 아키텍처를 갖는 복수의 프로세서들을 포함하는 시스템 온 칩의 동작 방법에 있어서,
교착 상태를 감지하는 단계;
상기 복수의 프로세서들 각각의 아키텍처에 기초하여 정보 추출 커맨드를 생성하는 단계;
상기 복수의 프로세서들 각각에서 슬레이브 인터페이스로 동작하는 인터페이스를 통해 상기 정보 추출 커맨드를 상기 복수의 프로세서들 각각에 전송하는 단계;
상기 정보 추출 커맨드에 응답하여 상기 복수의 프로세서들 각각이 출력하는 디버깅 정보를, 재부팅에 의해 리셋되지 않는 저장 공간에 저장하는 단계; 및
시스템 온 칩을 재부팅하는 단계; 를 포함하는 시스템 온 칩의 동작 방법.
A method of operating a system on a chip including a plurality of processors having different architectures,
deadlock detection;
generating an information extraction command based on an architecture of each of the plurality of processors;
transmitting the information extraction command to each of the plurality of processors through an interface operating as a slave interface in each of the plurality of processors;
storing debugging information output by each of the plurality of processors in a storage space that is not reset by rebooting in response to the information extraction command; and
rebooting the system on chip; A method of operating a system-on-a-chip comprising a.
KR1020180087692A 2018-04-03 2018-07-27 System on chip and operating method thereof KR102550886B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/214,978 US10962593B2 (en) 2018-04-03 2018-12-10 System on chip and operating method thereof
CN201910228208.1A CN110347639A (en) 2018-04-03 2019-03-25 System on chip and its operating method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180038758 2018-04-03
KR20180038758 2018-04-03

Publications (2)

Publication Number Publication Date
KR20190116029A KR20190116029A (en) 2019-10-14
KR102550886B1 true KR102550886B1 (en) 2023-07-05

Family

ID=68171870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180087692A KR102550886B1 (en) 2018-04-03 2018-07-27 System on chip and operating method thereof

Country Status (2)

Country Link
KR (1) KR102550886B1 (en)
CN (1) CN110347639A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138918B (en) * 2021-04-16 2023-12-01 Oppo广东移动通信有限公司 Debugging method applied to terminal with multiple systems, terminal and storage medium
WO2024080395A1 (en) * 2022-10-12 2024-04-18 엘지전자 주식회사 Recovery device and method for resolving system deadlock

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
JP2011022714A (en) 2009-07-14 2011-02-03 Canon Inc Data processing apparatus
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271185A (en) * 1997-03-27 1998-10-09 Toshiba Corp Communication system and its fault management system
US8443175B2 (en) * 2009-07-10 2013-05-14 Via Technologies, Inc. Microprocessor with first processor for debugging second processor
CN101710300B (en) * 2009-11-03 2011-11-02 龙芯中科技术有限公司 Device and system for realizing debuggability of multicore processor EJTAG
JP5575947B2 (en) * 2013-04-04 2014-08-20 ルネサスエレクトロニクス株式会社 Multiprocessor device
US10025741B2 (en) * 2016-01-13 2018-07-17 Samsung Electronics Co., Ltd. System-on-chip, mobile terminal, and method for operating the system-on-chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
JP2011022714A (en) 2009-07-14 2011-02-03 Canon Inc Data processing apparatus

Also Published As

Publication number Publication date
KR20190116029A (en) 2019-10-14
CN110347639A (en) 2019-10-18

Similar Documents

Publication Publication Date Title
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US9680712B2 (en) Hardware management and control of computer components through physical layout diagrams
US9529410B2 (en) Service processor (SP) initiated data transaction with BIOS utilizing power off commands
JP4678396B2 (en) Computer and method for monitoring virtual machine monitor, and virtual machine monitor monitor program
KR101813480B1 (en) Hardware-based inter-device resource sharing
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
KR102550886B1 (en) System on chip and operating method thereof
KR20160125137A (en) Application processor and system on chip
US9749189B2 (en) Generating graphical diagram of physical layout of computer platforms
US10962593B2 (en) System on chip and operating method thereof
EP2869189A1 (en) Boot up of a multiprocessor computer
KR100621095B1 (en) Booting-system and booting-method for initializing peripherals
JP6319326B2 (en) Information processing apparatus diagnosis method, information processing apparatus diagnosis program, and information processing apparatus
EP2639692A2 (en) Memory dump program, information processing apparatus, and memory dump method
JP2014182676A (en) Log collection device, arithmetic unit, and log collection method
US10425545B2 (en) Printing apparatus and method for controlling the same
TWI793774B (en) Method and apparatus and computer program product for debugging solid state disk devices
JP2015130023A (en) Information recording device, information processor, information recording method and information recording program
CN114328345B (en) Control information processing method, device and computer readable storage medium
US11900150B2 (en) Methods and systems for collection of system management interrupt data
RU180783U1 (en) Electronic computer
CN114327972A (en) Data processing method and device based on solid state disk
JP2013196241A (en) Information processor and log acquisition method
JP2016062529A (en) Information processing device, control method of information processing device, and program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right