KR20190116029A - 시스템 온 칩 및 그 동작 방법 - Google Patents

시스템 온 칩 및 그 동작 방법

Info

Publication number
KR20190116029A
KR20190116029A KR1020180087692A KR20180087692A KR20190116029A KR 20190116029 A KR20190116029 A KR 20190116029A KR 1020180087692 A KR1020180087692 A KR 1020180087692A KR 20180087692 A KR20180087692 A KR 20180087692A KR 20190116029 A KR20190116029 A KR 20190116029A
Authority
KR
South Korea
Prior art keywords
debugging
processors
chip
information
deadlock
Prior art date
Application number
KR1020180087692A
Other languages
English (en)
Other versions
KR102550886B1 (ko
Inventor
우형일
백현철
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/214,978 priority Critical patent/US10962593B2/en
Priority to CN201910228208.1A priority patent/CN110347639A/zh
Publication of KR20190116029A publication Critical patent/KR20190116029A/ko
Application granted granted Critical
Publication of KR102550886B1 publication Critical patent/KR102550886B1/ko

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시 형태에 따른 시스템 온 칩은, 교착 상태(Deadlock)에서 수신한 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들, 상기 복수의 프로세서들에 연결되는 시스템 버스(bus), 및 상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저를 포함한다.

Description

시스템 온 칩 및 그 동작 방법{SYSTEM ON CHIP AND OPERATING METHOD THEREOF}
본 발명은 시스템 온 칩 및 그 동작 방법에 관한 것이다.
최근 들어 시스템 온 칩의 적용 분야가 점점 넓어지고 있다. 시스템 온 칩은 다양한 기능을 갖춘 복잡한 시스템을 하나의 칩으로 구현한 것으로서, 하나의 시스템 온 칩 내부에는 하나 이상의 프로세서가 포함될 수 있다. 시스템 온 칩에 포함되는 복수의 프로세서들은 서로 필요한 데이터를 주고받으며 동작할 수 있는데, 이 과정에서 의도치 않은 교착 상태(Deadlock)가 발생할 수 있다. 교착 상태가 발생할 경우, 개발자 또는 사용자가 교착 상태의 원인 등을 파악할 수 있도록, 시스템 온 칩에 포함되는 프로세서들로부터 디버깅에 필요한 디버깅 정보를 확보하는 기능이 시스템 온 칩에 구현될 수 있다.
본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 서로 다른 아키텍처(architecture)에 따라 설계된 복수의 프로세서들을 탑재한 시스템 온 칩에 대하여, 교착 상태 발생시 복수의 프로세서들 각각의 아키텍처를 고려하여 디버깅 정보를 추출 및/또는 저장할 수 있는 시스템 온 칩 및 그 동작 방법을 제공하고자 하는 데에 있다.
본 발명의 일 실시예에 따른 시스템 온 칩은, 교착 상태(Deadlock)에 진입하면 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들, 상기 복수의 프로세서들에 연결되는 시스템 버스(bus), 및 상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저를 포함한다.
본 발명의 일 실시예에 따른 시스템 온 칩은, 제1 인터페이스와 제2 인터페이스, 및 중앙 처리 유닛을 각각 포함하는 복수의 프로세서들, 상기 제1 인터페이스에 연결되는 시스템 버스, 상기 제2 인터페이스에 연결되는 디버깅 마스터, 및 상기 시스템 버스를 통해 상기 복수의 프로세서들과 연결되며, 상기 복수의 프로세서들에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러를 포함하고, 상기 디버깅 마스터는, 상기 교착 상태가 발생하면 상기 SoC 컨트롤러의 명령에 응답하여 상기 복수의 프로세서들 각각의 아키텍처에 기초하여 생성된 정보 추출 커맨드를 상기 복수의 프로세서들에 전송한다.
본 발명의 일 실시예에 따른 시스템 온 칩은, 제1 아키텍처에 따라 설계된 제1 프로세서, 상기 제1 아키텍처와 다른 제2 아키텍처에 따라 설계된 제2 프로세서, 상기 제1 및 제2 프로세서들 중 적어도 하나에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러, 및 상기 제1 및 제2 프로세서들 각각의 슬레이브 인터페이스와 연결되며, 상기 교착 상태가 발생하면 상기 제1 및 제2 프로세서들이 리셋되기 전에 상기 슬레이브 인터페이스를 통해 상기 제1 및 제2 프로세서들에 정보 추출 커맨드를 전송하여 디버깅 정보를 확보하는 디버깅 마스터를 포함하며, 상기 제1 및 제2 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 서로 다른 방법으로 상기 디버깅 정보를 저장한다.
본 발명의 일 실시예에 따르면, 다양한 아키텍처에 따라 설계된 복수의 프로세서들을 탑재한 시스템 온 칩이 교착 상태에 진입할 경우, 시스템 온 칩이 재부팅되기 전에 프로세서들 각각의 아키텍처에 기초하여 프로세서들 중 적어도 일부가 디버깅 정보를 저장 및/또는 출력하도록 제어할 수 있다. 따라서, 시스템 온 칩에서 교착 상태를 발생시킨 프로세서들의 디버깅 정보를 이용하여 디버깅을 수행함으로써, 교착 상태의 원인을 정확히 파악할 수 있으며, 디버깅 작업의 효율을 개선할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 시스템 온 칩에 포함되는 프로세서를 간단하게 나타낸 블록도들이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 6은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 9 및 도 10은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 11 내지 도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 흐름도들이다.
도 15는 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 전자 기기를 간단하게 나타낸 블록도이다.
도 16은 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 자율 주행 차량을 간단하게 나타낸 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(10)은 복수의 프로세서들(11-13), 그래픽 처리 유닛(GPU, 14), 디지털 신호 처리 유닛(DSP, 15), SoC(System on Chip) 매니저(16), 및 메모리 컨트롤러(17) 등을 구성 요소들(11-17)로서 포함할 수 있다. 구성 요소들(11-17)은 시스템 버스(18)를 통해 데이터를 주고 받으며 동작할 수 있다. 시스템 버스(18)는 구성 요소들(11-17)과 연결되는 복수의 인터페이스들을 포함하며, 일례로 마스터 인터페이스와 슬레이브 인터페이스를 포함할 수 있다.
일례로, SoC 매니저(16)는 시스템 온 칩(10)의 동작 전반을 제어할 수 있으며, 전원 관리 로직, 클럭 관리 로직 등을 포함할 수 있다. 메모리 컨트롤러(18)는 시스템 온 칩(10)의 외부에 마련되는 휘발성 메모리 또는 비휘발성 메모리 등과 데이터 및 제어 커맨드를 주고받기 위한 로직을 포함할 수 있다. 그래픽 처리 유닛(14)은 시스템 온 칩(10)과 연결되는 디스플레이 장치 등에 표시하고자 하는 이미지 데이터를 처리할 수 있다.
시스템 온 칩(10)은 전자 기기, 자율 주행 차량 등의 다양한 제품에 탑재될 수 있으며, 전자 기기, 자율 주행 차량 등의 동작을 제어하는 데에 필요한 연산을 수행할 수 있다. 일례로 시스템 온 칩(10)에 포함되는 복수의 프로세서들(11-13)이 상기 연산을 수행할 수 있으며, 필요한 경우 복수의 프로세서들(11-13)은 시스템 버스(19)를 통해 다른 구성 요소들(11-18)과 데이터를 주고받을 수 있다.
시스템 온 칩(10)이 교착 상태(Deadlock)에 진입하면, 시스템 온 칩(10)은 교착 상태의 발생 원인, 교착 상태를 일으킨 소스 코드 등을 분석하기 위한 정보를 디버깅 정보로서 개발자 또는 사용자에게 제공할 수 있다. 일 실시예에서, 복수의 구성 요소들(11-17)은 서로 다른 아키텍처에 따라 설계 및 구현될 수 있으며, 따라서 교착 상태 발생시 디버깅 정보를 저장하기 위해 실행되어야 하는 프로세스가 복수의 구성 요소들(11-17)마다 서로 다를 수 있다.
일례로, 제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)로부터 디버깅 정보를 추출하여 저장하는 동작이 실행될 수 있다.
본 발명의 일 실시예에서는, SoC 매니저(16)가 디버깅 정보를 저장하기 위한 정보 추출 커맨드를 생성하고, 상기 정보 추출 커맨드를 제2 프로세서(12) 및 제3 프로세서(13)에 전달할 수 있다. SoC 매니저(16)는 제2 프로세서(12)와 제3 프로세서(13) 각각의 아키텍처를 고려하여, 상기 정보 추출 커맨드를 생성할 수 있다. 상기 정보 추출 커맨드에 응답하여, 제2 프로세서(12) 및 제3 프로세서(13)는 교착 상태가 발생한 시점 및 그 전후의 상태 정보를 디버깅 정보로 출력 및/또는 저장할 수 있다.
예를 들어, 연산을 담당하는 중앙 처리 유닛, 및 상기 중앙 처리 유닛으로부터 상태 정보를 획득할 수 있는 서브 컴포넌트가 제2 프로세서(12)에 포함될 경우, SoC 매니저(16)는 상기 서브 컴포넌트를 활성화시킴으로써 제2 프로세서(12)의 디버깅 정보를 추출 및/또는 저장할 수 있다. 또한 일례로, SoC 매니저(16)는 제3 프로세서(13)를 디버깅 모드로 전환시킬 수 있으며, 제3 프로세서(13)에 소정의 명령어(instruction)를 포함하는 정보 추출 커맨드를 전송할 수 있다. 정보 추출 커맨드에 포함된 상기 명령어에 응답하여, 제3 프로세서(13)에 포함된 중앙 처리 유닛의 상태 정보가 디버깅 정보로서 추출 및/또는 저장될 수 있다. 일례로, 디버깅 정보는 제1 내지 제3 프로세서들(11-13)과 다른 별도의 저장 공간에 저장될 수 있다. 상기 저장 공간은, 시스템 온 칩(10) 전체, 또는 제1 내지 제3 프로세서들(11-13) 중 적어도 일부의 선택적인 재부팅에도 불구하고 리셋되지 않는 저장 공간일 수 있으며, 비휘발성 메모리 등으로 구현될 수 있다.
한편, 시스템 온 칩(10)에서 발생하는 교착 상태는 시스템 버스(18)의 오류를 동반할 수 있다. 따라서, SoC 매니저(16)는 시스템 버스(18)와 다른 별도의 경로를 통해, 디버깅 정보를 저장하기 위한 정보 추출 커맨드를 구성 요소들(11-17) 중 적어도 일부에 전송할 수 있다. 일례로, 시스템 버스(18)를 논리적으로 파티션 분할하여 제1 버스와 제2 버스를 정의하고 제2 버스는 일반 동작 모드에서는 비활성화되며 교착 상태가 발생한 경우에만 활성화시켜 이용할 수 있다. 또는 시스템 버스(18)와 물리적으로 분리되는 디버깅 버스를 마련하여 교착 상태에서 이용할 수도 있다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 시스템 온 칩에 포함되는 프로세서를 간단하게 나타낸 블록도들이다.
먼저 도 2를 참조하면, 도 2에 도시한 일 실시예에 따른 시스템 온 칩(20)은 프로세서(21)와 시스템 버스(25), 및 SoC 매니저(26)를 포함할 수 있다. SoC 매니저(26)는 교착 상태 발생 여부를 감지하는 SoC 컨트롤러(27)와, 교착 상태 발생시 디버깅 정보를 확보하기 위해 정보 추출 커맨드를 프로세서(21)에 전달하는 디버깅 마스터(28) 등을 포함할 수 있다.
프로세서(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)은 소프트웨어를 구성하는 복수의 명령어들 및 데이터를 처리하는 코어를 둘 이상 포함할 수 있다.
일반적인 동작에서 중앙 처리 유닛(22)은 시스템 버스(25)를 통해 SoC 컨트롤러(27) 및 그 외에 다른 시스템 온 칩(20)의 구성 요소들과 데이터를 주고 받을 수 있다. 즉, 중앙 처리 유닛(22)은 제1 인터페이스(23)와 시스템 버스(25)를 통해 SoC 컨트롤러(27)를 비롯한 GPU, DSP, 내부 메모리, 메모리 컨트롤러 등의 다른 구성 요소들과 데이터를 주고받을 수 있다.
시스템 온 칩(20)이 교착 상태에 진입하면, 프로세서(21)뿐만 아니라 시스템 온 칩(20)에 포함되는 구성 요소들 대부분이 동작을 멈추고 반응하지 않을 수 있다. 따라서 시스템 온 칩(20)이 교착 상태에 진입했을 때 어떤 명령어가 실행 중이었고 어떤 데이터에 접근 중이었는지 등을 판단하기 어려울 수 있다. 또한 교착 상태를 해소하기 위해 시스템 온 칩(20)을 재부팅하면, 구성 요소들이 모두 리셋되기 때문에 교착 상태를 유발한 명령어, 데이터 및/또는 코드 등을 파악하기가 어려울 수 있다. 상기와 같은 상황으로 인해, 교착 상태를 일으킨 원인을 제거하기 위한 디버깅 작업의 효율이 저하될 수 있다.
본 발명에서는, 교착 상태를 감지하는 SoC 컨트롤러(27)의 명령에 의해 디버깅 마스터(28)가 프로세서(21)의 디버깅 정보를 추출할 수 있다. 디버깅 마스터(28)는 일반적인 동작 모드에서 이용되지 않는 제2 인터페이스(24)를 통해 중앙 처리 유닛(22)에 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 전달할 수 있다. 일례로, 디버깅 마스터(28)는 프로세서(21)의 아키텍처에 맞는 적절한 정보 추출 커맨드를 중앙 처리 유닛(22)에 전달할 수 있다. 시스템 버스(25)는 논리적으로 파티션 분할되는 제1 버스와 제2 버스를 가질 수 있으며, 상기 정보 추출 커맨드는 일반적인 동작 모드에서는 이용되지 않는 제2 버스에 의해 전달될 수 있다.
일례로, 디버깅 마스터(28)는 교착 상태 발생 시 프로세서(21)의 상태를 나타내는 정보를, 디버깅 정보로서 강제 출력하도록 제어하는 명령어를 정보 추출 커맨드에 포함시켜 프로세서(21)에 전달할 수 있다. 상기 명령어에 의해 프로세서(21)가 출력하는 디버깅 정보는, 디버깅 마스터(28) 또는 SoC 컨트롤러(27) 등에 의해 시스템 온 칩(20)이 재부팅되는 동안 리셋되지 않는 소정의 저장 공간에 저장될 수 있다.
다른 실시예들에서 디버깅 마스터(28)가 전송하는 정보 추출 커맨드에 의해, 프로세서(21) 내에 포함되며 중앙 처리 유닛(22)과는 다른 서브-컴포넌트(Sub-Component)가 활성화될 수 있다. 상기 서브-컴포넌트는 중앙 처리 유닛(22)으로부터 디버깅 정보를 추출하거나, 또는 중앙 처리 유닛(22)이 스스로 디버깅 정보를 특정 저장 공간에 저장하도록 제어할 수도 있다. 상기 실시예들에서 알 수 있듯이, 디버깅 마스터(28)는 프로세서(21)의 아키텍처를 고려하여 디버깅 정보를 확보하는 데에 적절한 명령어를 선택하고, 이를 정보 추출 커맨드에 포함시켜 프로세서(21)에 전달할 수 있다. 디버깅 마스터(28)는 정보 추출 커맨드를 직접 생성하거나, 또는 SoC 컨트롤러(27)로부터 수신하여 전달할 수 있다. 한편 디버깅 마스터(28)는, 외부의 디버깅 툴, 예를 들어 JTAG 디버깅 툴과 연동되어 동작할 수 있다.
다음으로 도 3을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(30)은 프로세서(31), 시스템 버스(36) 및 SoC 컨트롤러(37) 등을 포함할 수 있다. 도 3에 도시한 일 실시예에서는, 디버깅 마스터(36)가 중앙 처리 유닛(32)과 시스템 버스(38) 사이에 구현될 수 있다. 도 3에 도시한 일 실시예에서는 디버깅 마스터(36)가 프로세서(31) 내부에 포함되는 것으로 도시하였으나, 이와 달리 시스템 버스(36)와 프로세서(31) 사이에 별도의 구성 요소로 마련될 수도 있다. 시스템 온 칩(30)이 시스템 버스(36)와 구분되는 별도의 디버깅 버스를 갖는 경우, 디버깅 마스터(35)는 디버깅 버스와 프로세서(31) 사이에 연결될 수 있다. 디버깅 마스터(35)는 슬레이브 인터페이스인 제2 인터페이스(34)를 통해 중앙 처리 유닛(32)과 데이터를 주고받을 수 있다.
도 3에 도시한 일 실시예에 따른 시스템 온 칩(30)이 교착 상태에 진입하면, SoC 컨트롤러(37)는 시스템 버스(36)를 통해 디버깅 마스터(35)로 디버깅 정보를 확보하라는 명령어를 전송할 수 있다. 교착 상태에서는 시스템 버스(36)의 동작 역시 중단될 수 있으므로, 도 3에 도시한 일 실시예에서는 시스템 버스(36)가 제1 버스 및 제2 버스로 파티션 분할될 수 있으며, 제1 버스는 일반적인 동작에서만, 제2 버스는 교착 상태 발생시에만 이용될 수 있다. SoC 컨트롤러(37)는 제2 버스를 통해 디버깅 마스터(35)에 디버깅 정보를 확보하기 위한 명령어를 전달할 수 있다. 또는, 앞서 설명한 바와 같이 시스템 버스(36)와 논리적으로 구분되는 별도의 디버깅 버스를 통해, SoC 컨트롤러(37)가 디버깅 마스터(35)에 디버깅 정보를 확보하기 위한 명령어를 전달할 수도 있다.
디버깅 마스터(35)는 제2 인터페이스(34)를 통해 중앙 처리 유닛(32)에 접근할 수 있다. 디버깅 마스터(35)는 중앙 처리 유닛(32)으로부터 디버깅 정보를 강제로 추출하여 저장하거나, 중앙 처리 유닛(32)이 디버깅 정보를 스스로 저장하도록 제어할 수 있다. 디버깅 정보는, 시스템 온 칩(30) 또는 프로세서(31)가 재부팅되는 동안 리셋되지 않는 저장 공간에 저장될 수 있다. 일례로 디버깅 정보는 프로세서(31) 내부의 저장 공간, 또는 시스템 온 칩(30)에 포함되며 프로세서(31)와는 다른 구성 요소의 저장 공간에 저장될 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 4 및 도 5를 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(100)은 복수의 프로세서들(110-130), 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), SoC 매니저(160), 메모리 컨트롤러(170) 및 시스템 버스(180) 등을 구성 요소들로 포함할 수 있다. SoC 매니저(160)는 SoC 컨트롤러(161) 및 디버깅 마스터(162)를 포함할 수 있다.
시스템 온 칩(100) 내에 포함되는 구성 요소들은, 시스템 온 칩(100)으로 구현, 제공하고자 하는 기능에 따라 다양하게 추가 또는 변경될 수 있다. 일례로, 도 4 및 도 5에 도시한 구성 요소들 외에, 비디오/오디오 코덱 처리를 담당하는 로직과, 시스템 온 칩(100)에 연결되는 다양한 센서들이 수집한 정보를 처리하는 로직 등이 더 포함될 수 있다.
도 4 및 도 5에 도시한 바와 같이, 복수의 프로세서들(110-130)은 서로 다른 아키텍처를 가질 수 있다. 일례로, 제1 프로세서(110)는 제1 중앙 처리 유닛(111)과 디버깅 리소스(112)를 포함할 수 있으며, 제1 중앙 처리 유닛(111)의 상태 정보가 소정의 주기마다 디버깅 리소스(112)에 저장될 수 있다. 시스템 온 칩(100)이 교착 상태에 진입하는 경우, 디버깅 마스터(162)가 제1 프로세서(110)의 디버깅 리소스(112)에 접근하여 디버깅 리소스(112)에 저장된 상태 정보들 중에서, 교착 상태가 발생한 시점 부근에 저장된 상태 정보를 디버깅 정보로 마킹하거나 읽어오는 것으로, 제1 프로세서(110)의 디버깅 정보를 확보할 수 있다.
제1 프로세서(110)와 달리, 제2 프로세서(120)와 제3 프로세서(130)는 디버깅 정보로 활용할 수 있는 상태 정보를 자동으로 저장하는 기능을 제공하지 않을 수 있다. 따라서, 시스템 온 칩(100)이 교착 상태에 진입하면, 디버깅 마스터(162)가 SoC 컨트롤러(161)로부터의 명령에 응답하여, 제2 프로세서(120)와 제3 프로세서(130) 각각으로부터 디버깅 정보를 확보할 수 있다.
먼저 도 4를 참조하면, 시스템 온 칩(100)이 교착 상태에 진입함으로써 복수의 프로세서들(110-130)과 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 및 메모리 컨트롤러(170) 등의 동작이 중단될 수 있다. 교착 상태에서는, 시스템 버스(180) 역시 정상적으로 동작하지 않을 수 있다.
교착 상태는 SoC 컨트롤러(161)에 의해 감지될 수 있다. 일례로, 복수의 프로세서들(110-130), 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 메모리 컨트롤러(170) 중 적어도 하나는 내부에 카운터 회로를 포함할 수 있으며, SoC 컨트롤러(161)는 일정한 주기마다 카운터 회로로부터 신호를 수신할 수 있다. 따라서, 상기 주기가 경과하였음에도 불구하고 카운터 회로로부터 신호를 수신하지 못하면, SoC 컨트롤러(161)는 시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단할 수 있다. 또는, 카운터 회로로부터의 신호 수신 여부와 관계없이 미리 정의된 특정 상황이 발생하거나, 오동작 발생을 알려주는 인터럽트가 검출되는 경우에 시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단할 수도 있다.
시스템 온 칩(100)이 교착 상태에 진입한 것으로 판단되면, 디버깅 마스터(162)는 SoC 컨트롤러(161)의 명령에 응답하여, 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 시스템 온 칩(100)의 구성 요소들 중 적어도 하나에 전달할 수 있다. 도 5에 도시한 일 실시예에서는 디버깅 마스터(162)가 복수의 프로세서들(110-130)에 정보 추출 커맨드를 전송하는 것을 가정하였으나, 그래픽 처리 유닛(140), 디지털 신호 처리 유닛(150), 및 메모리 컨트롤러(170) 등에도 디버깅 정보를 확보하기 위한 정보 추출 커맨드가 전송될 수 있다.
정보 추출 커맨드는 복수의 프로세서들(110-130)의 아키텍처에 따라 결정되는 다양한 명령어들을 포함할 수 있다. 일례로, 제1 프로세서(110)에 입력되는 정보 추출 커맨드에 의해, 디버깅 리소스(112)에 저장된 상태 정보들 중 적어도 일부가, 제1 프로세서(110)의 디버깅 정보로서 선택되어 따로 저장될 수 있다. 또한, 제2 프로세서(120)에 입력되는 정보 추출 커맨드에 의해, 서브-컴포넌트(122)가 활성화되어 제2 중앙 처리 유닛(121)으로부터 디버깅 정보를 추출하고 저장할 수 있다. 다른 일 실시예에서는, 디버깅 마스터(160)가 입력하는 정보 추출 커맨드에 의해, 제2 프로세서(120)가 강제로 디버깅 정보를 출력하도록 제어될 수도 있다. 제2 프로세서(120)가 강제 출력한 디버깅 정보는, 디버깅 마스터(160)에 의해 시스템 온 칩(100) 내부의 미리 지정된 저장 공간에 저장될 수 있다. 앞서 설명한 바와 같이, 디버깅 마스터(160)는 시스템 온 칩(100)의 재부팅에 의해 리셋되지 않는 저장 공간에 디버깅 정보를 저장할 수 있다.
한편, 제3 프로세서(130)의 제3 중앙 처리 유닛(131)은 디버깅 마스터(160)로부터 수신한 정보 추출 커맨드에 포함된 소정의 명령어(instruction)를 실행함으로써 디버깅 정보를 추출하여 내부의 레지스터에 저장할 수 있다. 디버깅 정보는 시스템 온 칩(100)의 재부팅에 의해 리셋되지 않는 저장 공간에 저장될 수 있다. 일례로 디버깅 정보를 저장하는 상기 저장 공간은, 제3 중앙 처리 유닛(131)의 외부에 존재하는 저장 공간일 수 있다.
정리하면, 복수의 프로세서들(110-130) 각각은 서로 다른 아키텍처를 가질 수 있으며, 시스템 온 칩(100)이 교착 상태에 진입한 경우 디버깅 정보를 추출하여 저장하기 위한 방법 역시 복수의 프로세서들(110-130) 간에 서로 다르게 적용될 수 있다. 본 발명의 일 실시예에서는, SoC 컨트롤러(161) 및/또는 디버깅 마스터(162)가 복수의 프로세서들(110-130) 각각의 아키텍처를 인식하여 복수의 프로세서들(110-130) 각각에 맞는 적절한 디버깅 정보 추출 및 저장 방법을 선택할 수 있다. SoC 컨트롤러(161) 및/또는 디버깅 마스터(162)는, 아키텍처에 기초하여 선택한 디버깅 정보 추출 및 저장 방법을 참조하여 생성한 정보 추출 커맨드를, 복수의 프로세서들(110-130)에 전달할 수 있다. 따라서, 복수의 프로세서들(110-130) 각각이 최적화된 방법을 이용하여 디버깅 정보를 저장할 수 있으며, 시스템 온 칩(100)이 재부팅된 이후 개발자 또는 사용자가 디버깅 정보를 이용하여 교착 상태를 발생시킨 원인을 효율적으로 분석할 수 있다.
도 6은 본 발명의 일 실시예에 따른 시스템 온 칩을 간단하게 나타낸 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(200)은 복수의 프로세서들(210-230), 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), SoC 매니저(260), 및 메모리 컨트롤러(270) 등을 구성 요소들(210-270)로서 포함할 수 있다. 구성 요소들(210-270)은 시스템 버스(280)를 통해 서로 통신하며 동작할 수 있다. SoC 매니저(260)는 SoC 컨트롤러(261) 및 디버깅 마스터(262)를 포함할 수 있다.
도 6에 도시한 일 실시예에는 시스템 버스(280) 외에 디버깅 버스(290)가 시스템 온 칩(200)에 더 포함될 수 있다. 디버깅 버스(290)는 시스템 버스(290)와 물리적으로 구분되는 버스일 수 있으며, 일반적인 동작 모드에서는 비활성화 상태를 유지할 수 있다. 일 실시예에서 디버깅 버스(290)는 시스템 온 칩(200)이 교착 상태에 진입한 경우에, SoC 매니저(260)에 의해 활성화될 수 있다. 이하, 도 7 및 도 8을 참조하여, 시스템 온 칩(200)의 동작을 더욱 자세히 설명하기로 한다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
도 7 및 도 8을 참조하면, 복수의 프로세서들(210-230)은 서로 다른 아키텍처를 가질 수 있다. 일례로, 제1 프로세서(210)는 제1 CPU(211)와 디버깅 리소스(212)를 포함할 수 있으며, 제1 CPU(211)는 일정한 주기마다 및/또는 교착 상태가 발생할 때의 상태 정보를 디버깅 정보로서 디버깅 리소스(212)에 저장할 수 있다. 따라서, 시스템 온 칩(200)이 교착 상태에 진입한 경우, 제1 프로세서(210)의 디버깅 정보는 시스템 온 칩(200)이 재부팅되기 전에 디버깅 리소스(212)로부터 추출되어 소정의 저장 공간에 저장될 수 있다. 시스템 온 칩(200)의 재부팅이 완료되면, 상기 저장 공간에 저장된 디버깅 정보는 사용자 또는 개발자에게 제공될 수 있다. 즉, 제1 프로세서(210)에서는 디버깅 리소스(212)에 저장된 상태 정보들 중 일부를 선택하여 따로 저장하는 것만으로, 디버깅 정보를 확보할 수 있다.
제2 프로세서(220)와 제3 프로세서(230)는 제1 프로세서(210)와 달리 디버깅에 필요한 디버깅 정보를 자동으로 저장하는 기능을 제공하지 않을 수 있다. 따라서, 시스템 온 칩(200)이 교착 상태에 진입하면, 디버깅 마스터(262)가 SoC 컨트롤러(261)로부터의 명령에 응답하거나 또는 디버깅 마스터(262)가 스스로 판단하여, 제2 프로세서(220)와 제3 프로세서(230) 각각으로부터 디버깅 정보를 확보할 수 있다.
먼저 도 7을 참조하면, 시스템 온 칩(100)이 교착 상태에 진입함으로써 복수의 프로세서들(210-230)은 물론, 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), 및 메모리 컨트롤러(270) 등의 동작이 중단될 수 있다. 교착 상태에서는, 시스템 버스(280) 역시 동작이 중단될 수 있다.
SoC 컨트롤러(261)는 디버깅 정보를 확보하기 위한 정보 추출 커맨드를 생성하여 디버깅 마스터(262)에 전달할 수 있다. 또는, 다른 일 실시예에서 SoC 컨트롤러(261)가 디버깅 정보를 확보하기 위한 명령만을 디버깅 마스터(262)에 전달하고, 디버깅 마스터(262)가 정보 추출 커맨드를 생성할 수도 있다. 즉, 본 발명의 일 실시예에서, SoC 컨트롤러(261)와 디버깅 마스터(262) 중 적어도 하나에 의해, 정보 추출 커맨드가 생성될 수 있다.
디버깅 마스터(262)는 디버깅 버스(290)를 통해 복수의 프로세서들(210-230)에 정보 추출 커맨드를 입력할 수 있다. 디버깅 버스(290)는 시스템 온 칩(200)이 교착 상태에 진입한 이후 활성화될 수 있다. 한편, 도 7 및 도 8에 도시한 일 실시예와 달리, 정보 추출 커맨드는 그래픽 처리 유닛(240), 디지털 신호 처리 유닛(250), 및 메모리 컨트롤러(270) 등의 다른 구성 요소들에도 입력될 수 있다. 정보 추출 커맨드를 입력할 구성 요소들의 종류와 개수는, SoC 컨트롤러(261)에 의해 결정될 수 있다.
복수의 프로세서들(210-230)은 서로 다른 아키텍처를 가지며, 따라서 복수의 프로세서들(210-230) 각각에 입력되는 정보 추출 커맨드는 서로 다른 명령어들을 포함할 수 있다. 일례로, 제1 프로세서(210)에 입력되는 정보 추출 커맨드는, 디버깅 리소스(212)에 저장된 상태 정보들 중에서 디버깅 정보를 선택하고, 선택한 디버깅 정보를 별도의 저장 공간에 기록하는 명령어를 포함할 수 있다.
제2 프로세서(220)는 제1 프로세서(210)와 달리 디버깅 리소스(212)를 포함하지 않을 수 있다. 제2 프로세서(220)에 입력되는 정보 추출 커맨드는, 제2 중앙 처리 유닛(221)이 디버깅 정보를 출력하도록 강제하는 명령어를 포함하거나, 또는 서브-컴포넌트(222)를 활성화시켜 제2 중앙 처리 유닛(221)으로부터 디버깅 정보를 추출하도록 제어하는 명령어를 포함할 수 있다. 제3 프로세서(230)에 입력되는 정보 추출 커맨드는 제3 중앙 처리 유닛(231)에 의해 처리되어 제3 중앙 처리 유닛(231)이 디버깅 정보를 소정의 저장 공간에 기록하도록 제어하는 명령어들을 포함할 수 있다. 즉, 상기 예시한 바와 같이, 본 발명에서는 복수의 프로세서들(210-230) 각각의 아키텍처에 의해 결정되는 명령어들을 갖는 서로 다른 정보 추출 커맨드들이, 복수의 프로세서들(210-230)에 입력될 수 있다.
도 9 및 도 10은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 도면들이다.
먼저 도 9를 참조하면, 도 9에 도시한 일 실시예에 따른 시스템 온 칩(300)에서는 복수의 프로세서들(310-330) 각각이 디버깅 마스터(313, 323, 333)를 포함할 수 있다. 시스템 온 칩(300)이 교착 상태에 진입하면, SoC 컨트롤러(360)는 복수의 프로세서들(310-330) 각각에 정보 추출 커맨드를 입력할 수 있다. 정보 추출 커맨드는, 프로세서들(310-330)이 교착 상태에 진입했을 때의 상태 정보에 대응하는 디버깅 정보를 저장 및/또는 추출하기 위한 명령어들을 포함할 수 있다. 교착 상태에서는 시스템 버스(380)가 정상적으로 동작하지 않을 수 있으므로, 시스템 온 칩(300)은 시스템 버스(380)를 파티션 분할하고 그 일부를 교착 상태에서만 동작하는 디버그 전용 버스로 할당할 수 있다.
제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)이 재부팅된 이후 디버깅 작업에 활용될 수 있다.
도 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) 각각으로부터 디버깅 정보를 확보할 수 있다.
도 11 내지 도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 동작을 설명하기 위해 제공되는 흐름도들이다.
먼저 도 11을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩의 동작은, 교착 상태를 감지하는 것으로 시작할 수 있다(S10). 교착 상태는 시스템 온 칩에 포함된 SoC 컨트롤러 등에 의해 감지될 수 있다. 일례로 시스템 온 칩에 포함되는 복수의 구성 요소들은 내부에 카운터 회로를 포함할 수 있으며, 카운터 회로는 소정의 주기마다 SoC 컨트롤러에 신호를 전송할 수 있다. SoC 컨트롤러는 상기 주기가 경과하였음에도 불구하고 카운터 회로로부터 신호를 수신하지 못할 때, 교착 상태가 발생한 것으로 판단할 수 있다. 또한, 시스템 온 칩에 포함되는 구성 요소들 각각이, 이상 동작을 감지하여 인터럽트를 생성한 경우에도 교착 상태가 발생한 것으로 인식할 수 있다.
교착 상태가 감지되면, SoC 컨트롤러는 복수의 프로세서들 각각의 아키텍처에 맞는 커맨드를 전송할 수 있다(S20). 일 실시예에서 상기 커맨드는 시스템 온 칩이 교착 상태에 진입했을 때 복수의 프로세서들 각각의 상태를 나타내는 디버깅 정보를 추출하기 위한 명령어들을 포함하는 정보 추출 커맨드일 수 있다. 실시예들에 따라, 정보 추출 커맨드는 SoC 컨트롤러 및 디버깅 마스터를 통해 프로세서들에 전송될 수 있으며, 프로세서들을 제외한 나머지 구성 요소들에도 정보 추출 커맨드가 전송될 수 있다.
정보 추출 커맨드를 수신한 프로세서들은, 그에 응답하여 디버깅 정보를 저장 및/또는 출력할 수 있다(S30). 앞서 설명한 바와 같이, 프로세서들 각각이 디버깅 정보를 저장 및/또는 출력하는 방법은 프로세서들 각각의 아키텍처에 따라 결정될 수 있다. 일례로, 서브 컴포넌트를 포함하는 프로세서의 경우 정보 추출 커맨드에 응답하여 서브 컴포넌트가 활성화될 수 있다. 활성화된 서브 컴포넌트는 프로세서에 포함된 CPU로부터 디버깅 정보를 추출하고 이를 소정의 저장 공간에 저장할 수 있다. 서브 컴포넌트를 포함하지 않는 프로세서의 경우, 정보 추출 커맨드에 포함된 명령어를 CPU가 실행하여 디버깅 정보를 스스로 저장 공간에 저장할 수 있다. 상기 저장 공간은 시스템 온 칩이 재부팅되는 경우에도 리셋되지 않는 영역일 수 있다.
디버깅 정보가 디버깅 마스터에 의해 상기 영역에 저장되면, 시스템 온 칩이 재부팅될 수 있다(S40). 다만, 실시예들에 따라, 교착 상태에 진입한 일부 구성 요소들만 재부팅될 수도 있다. 시스템 온 칩이 복수의 프로세서들을 포함하고 복수의 프로세서들을 그룹화하여 관리하는 경우, 그룹 단위로 재부팅이 실행될 수도 있다.
재부팅이 완료되면, 시스템 온 칩은 S30 단계에서 저장한 디버깅 정보를 개발자 또는 사용자에게 제공하며, 개발자 또는 사용자는 디버깅 정보를 이용하여 디버깅 작업을 진행할 수 있다(S50). 따라서, 시스템 온 칩의 교착 상태를 유발한 명령어를 빠르게 파악할 수 있으므로, 개발자 또는 사용자의 디버깅 작업 효율을 개선할 수 있다.
도 12는 도 11의 S30 단계가 제1 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 정보 추출 커맨드를 수신한 프로세서는, 디버깅 리소스에 접근할 수 있다(S31). 디버깅 리소스는 프로세서에 포함되는 중앙 처리 유닛, 또는 코어 등이 소정의 주기 또는 교착 상태 발생 시에 상태 정보를 기록하는 공간일 수 있다. 정보 추출 커맨드를 수신하면, 프로세서는 교착 상태 발생시에 디버깅 리소스에 저장된 상태 정보를 검색할 수 있다(S32). 일례로, 교착 상태 발생 시점 부근의 상태 정보가 S32 단계에서 검색될 수 있다.
프로세서는 검색한 상태 정보를 디버깅 정보로서 저장할 수 있다(S33). 앞서 설명한 바와 같이, 디버깅 정보는 시스템 온 칩의 재부팅과 관계없이, 리셋되지 않는 저장 공간에 기록될 수 있다.
도 13은 도 11의 S30 단계가 제2 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 제2 아키텍처는 앞서 도 12를 참조하여 설명한 제1 아키텍처와 다를 수 있다.
도 12에 도시한 일 실시예에서는, 정보 추출 커맨드에 의해 프로세서에 포함된 서브 컴포넌트가 활성화될 수 있다(S34). S34 단계에서 활성화되는 서브 컴포넌트는, 교착 상태에 진입한 프로세서의 중앙 처리 유닛(CPU) 또는 코어 등에 접근하여 특정 정보를 추출하는 로직일 수 있다. 즉, 활성화된 서브 컴포넌트는 중앙 처리 유닛(CPU)으로부터 디버깅 정보를 추출하여 저장할 수 있다(S35). 디버깅 정보는 시스템 온 칩의 재부팅과 관계없이, 리셋되지 않는 저장 공간에 기록될 수 있다.
도 14는 도 11의 S30 단계가 제3 아키텍처를 갖는 프로세서에서 실행되는 실시예를 더욱 자세히 설명하기 위한 흐름도일 수 있다. 제3 아키텍처는 앞서 도 11 및 도 12를 참조하여 설명한 제1 아키텍처 및 제2 아키텍처와 다를 수 있다.
도 14에 도시한 일 실시예에서는, 정보 추출 커맨드에 포함된 소정의 명령어가 실행될 수 있다(S36). 일례로 상기 명령어는 디버깅 마스터 또는 프로세서에 의해 정보 추출 커맨드로부터 실행될 수 있다. 상기 명령어가 실행되면, 프로세서의 중앙 처리 유닛 또는 코어 등으로부터 디버깅 정보가 추출되어 프로세서의 내부 레지스터에 저장될 수 있다(S37). 동시에, 상기 디버깅 정보는 프로세서 외부의 저장 공간에 기록될 수 있다(S38). 도 12 및 도 13을 참조하여 설명한 바와 마찬가지로, 디버깅 정보는 시스템 온 칩의 재부팅에 의해 리셋되지 않는 저장 공간에 기록될 수 있다.
도 1 내지 도 14를 참조하여 설명한 실시예들은, 시스템 온 칩이 교착 상태에 진입한 경우는 물론, 개발자 또는 사용자가 개발 및/또는 유지, 보수 목적으로 디버깅 정보를 필요로 하는 경우에도 적용될 수 있다. 즉, 시스템 온 칩이 교착 상태에 진입하지 않은 경우에도, 디버깅 정보를 필요로 하는 개발자 또는 사용자가 정보 추출 커맨드를 출력하도록 SoC 컨트롤러를 제어하면, 복수의 프로세서들을 포함하는 구성 요소들이 정보 추출 커맨드를 입력받아 디버깅 정보를 저장할 수 있다. 개발자 또는 사용자는 저장된 상기 디버깅 정보를 이용하여, 교착 상태 진입 여부와 관계없이 디버깅 작업을 진행할 수도 있다.
도 15는 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 전자 기기를 간단하게 나타낸 블록도이다.
도 15에 도시한 실시예에 따른 컴퓨터 장치(1000)는 이미지 센서(1010), 디스플레이(1020), 메모리(1030), 시스템 온 칩(1040), 및 포트(1050) 등을 포함할 수 있다. 이외에 컴퓨터 장치(1000)는 유무선 통신 장치, 전원 장치 등을 더 포함할 수 있다. 도 15에 도시된 구성 요소 가운데, 포트(1050)는 컴퓨터 장치(1000)가 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하기 위해 제공되는 장치일 수 있다. 컴퓨터 장치(1000)는 일반적인 데스크톱 컴퓨터나 랩톱 컴퓨터 외에 스마트폰, 태블릿 PC, 스마트 웨어러블 기기 등을 모두 포괄하는 개념일 수 있다.
시스템 온 칩(1040)는 특정 연산이나 명령어 및 태스크 등을 수행할 수 있다. 시스템 온 칩(1040)은 버스(1060)를 통해 이미지 센서(1010), 디스플레이(1020), 메모리 장치(1030)는 물론, 포트(1050)에 연결된 다른 장치들과 통신할 수 있다. 시스템 온 칩(1040)은 서로 다른 아키텍처에 따라 설계되는 복수의 프로세서들을 포함할 수 있으며, 교착 상태에 진입할 경우 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따라 디버깅 정보를 확보할 수 있다.
메모리(1030)는 컴퓨터 장치(1000)의 동작에 필요한 데이터, 또는 멀티미디어 데이터 등을 저장하는 저장 매체일 수 있다. 메모리(1030)는 랜덤 액세스 메모리(RAM)와 같은 휘발성 메모리나, 또는 플래시 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 또한 메모리(1030)는 저장장치로서 솔리드 스테이트 드라이브(SSD), 하드 디스크 드라이브(HDD), 및 광학 드라이브(ODD) 중 적어도 하나를 포함할 수도 있다. 입출력 장치(1020)는 사용자에게 제공되는 키보드, 마우스, 터치스크린 등과 같은 입력 장치 및 디스플레이, 오디오 출력부 등과 같은 출력 장치를 포함할 수 있다.
이미지 센서(1010)는 패키지 기판에 실장되어 버스(1060) 또는 다른 통신 수단에 의해 프로세서(1040)와 연결될 수 있다. 이미지 센서(1010)는 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따른 형태로 컴퓨터 장치(1000)에 채용될 수 있다.
도 16은 본 발명의 일 실시예에 따른 시스템 온 칩을 포함하는 자율 주행 차량을 간단하게 나타낸 블록도이다.
도 16을 참조하면, 자율 주행 차량(1100)은 시스템 온 칩(1110), 비전 센서(1120), 차체 제어 모듈(Body Control Module, 1130), 메모리(1140), 및 통신 모듈(1150) 등을 포함할 수 있다. 시스템 온 칩(1110)은 서로 다른 아키텍처에 따라 설계되는 복수의 프로세서들을 포함할 수 있으며, 교착 상태에 진입할 경우 도 1 내지 도 14를 참조하여 설명한 다양한 실시예들에 따라 디버깅 정보를 확보할 수 있다.
시스템 온 칩(1110)은 비전 센서(1120), 차체 제어 모듈(1130), 메모리(1140), 및 통신 모듈(1150)을 제어하여 자율 주행 차량(1100)의 자율 주행 기능을 제공할 수 있다. 일례로 시스템 온 칩(1110)은 비전 센서(1120)가 수집한 차량 주변의 시각 정보와, 통신 모듈(1150)을 통해 수신한 교통 정보 등을 이용하여 주행 환경을 판단하고, 주행 환경에 기초하여 차량의 구동계와 함께 차체 제어 모듈(1130)을 제어할 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.
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: 디버깅 마스터

Claims (10)

  1. 교착 상태(Deadlock)에서 수신한 정보 추출 커맨드에 응답하여 디버깅 정보를 저장하며, 적어도 일부가 서로 다른 아키텍처를 갖는 복수의 프로세서들;
    상기 복수의 프로세서들에 연결되는 시스템 버스(bus); 및
    상기 교착 상태가 발생하면, 상기 복수의 프로세서들 각각의 아키텍처에 따라 상기 복수의 프로세서들 중 적어도 일부에 대해 상기 정보 추출 커맨드를 다르게 생성하는 SoC(System on Chip) 매니저; 를 포함하는 시스템 온 칩.
  2. 제1항에 있어서,
    상기 SoC 매니저는, 상기 복수의 프로세서들 각각이 상기 정보 추출 커맨드에 응답하여 상기 디버깅 정보를 저장하면, 상기 복수의 프로세서들 및 상기 시스템 버스를 리셋하는 시스템 온 칩.
  3. 제1항에 있어서,
    상기 시스템 버스와 서로 물리적으로 분리되거나, 파티션 분할에 의해 서로 논리적으로 분리되는 디버깅 버스; 를 더 포함하는 시스템 온 칩.
  4. 제3항에 있어서,
    상기 SoC 매니저는, 상기 교착 상태가 감지되면 상기 디버깅 버스를 통해 상기 복수의 프로세서들 각각에 상기 정보 추출 커맨드를 전송하는 시스템 온 칩.
  5. 제1항에 있어서,
    상기 SoC 매니저는, 상기 교착 상태를 감지하는 SoC 컨트롤러, 및 상기 정보 추출 커맨드를 상기 복수의 프로세서들에 전송하는 디버깅 마스터를 포함하는 시스템 온 칩.
  6. 제1항에 있어서,
    상기 복수의 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 상기 디버깅 정보를 저장하는 디버깅 마스터를 포함하는 시스템 온 칩.
  7. 제1 인터페이스와 제2 인터페이스, 및 중앙 처리 유닛을 각각 포함하는 복수의 프로세서들;
    상기 제1 인터페이스에 연결되는 시스템 버스;
    상기 제2 인터페이스에 연결되는 디버깅 마스터; 및
    상기 시스템 버스를 통해 상기 복수의 프로세서들과 연결되며, 상기 복수의 프로세서들에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러; 를 포함하고,
    상기 디버깅 마스터는, 상기 교착 상태가 발생하면 상기 SoC 컨트롤러의 명령에 응답하여 상기 복수의 프로세서들 각각의 아키텍처에 기초하여 생성된 정보 추출 커맨드를 상기 복수의 프로세서들에 전송하는 시스템 온 칩.
  8. 제7항에 있어서,
    상기 제2 인터페이스는, 상기 디버깅 마스터에 대한 슬레이브 인터페이스로 동작하는 시스템 온 칩.
  9. 제1 아키텍처에 따라 설계된 제1 프로세서;
    상기 제1 아키텍처와 다른 제2 아키텍처에 따라 설계된 제2 프로세서;
    상기 제1 및 제2 프로세서들 중 적어도 하나에서 발생하는 교착 상태를 감지하는 SoC 컨트롤러; 및
    상기 제1 및 제2 프로세서들 각각의 슬레이브 인터페이스와 연결되며, 상기 교착 상태가 발생하면 상기 제1 및 제2 프로세서들이 리셋되기 전에 상기 슬레이브 인터페이스를 통해 상기 제1 및 제2 프로세서들에 정보 추출 커맨드를 전송하여 디버깅 정보를 확보하는 디버깅 마스터; 를 포함하며,
    상기 제1 및 제2 프로세서들 각각은, 상기 정보 추출 커맨드에 응답하여 서로 다른 방법으로 상기 디버깅 정보를 저장하는 시스템 온 칩.
  10. 서로 다른 아키텍처를 갖는 복수의 프로세서들을 포함하는 시스템 온 칩의 동작 방법에 있어서,
    교착 상태를 감지하는 단계;
    상기 복수의 프로세서들 각각의 아키텍처에 기초하여 정보 추출 커맨드를 생성하는 단계;
    상기 정보 추출 커맨드를 상기 복수의 프로세서들 각각에 전송하는 단계;
    상기 정보 추출 커맨드에 응답하여 상기 복수의 프로세서들 각각이 출력하는 디버깅 정보를, 재부팅에 의해 리셋되지 않는 저장 공간에 저장하는 단계; 및
    시스템 온 칩을 재부팅하는 단계; 를 포함하는 시스템 온 칩의 동작 방법.
KR1020180087692A 2018-04-03 2018-07-27 시스템 온 칩 및 그 동작 방법 KR102550886B1 (ko)

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 (zh) 2018-04-03 2019-03-25 片上系统及其操作方法

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=68171870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180087692A KR102550886B1 (ko) 2018-04-03 2018-07-27 시스템 온 칩 및 그 동작 방법

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080395A1 (ko) * 2022-10-12 2024-04-18 엘지전자 주식회사 시스템 교착 상태를 해소하는 복원 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138918B (zh) * 2021-04-16 2023-12-01 Oppo广东移动通信有限公司 应用于具有多系统的终端的调试方法、终端和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271185A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 通信システム及びその障害管理方式
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
JP2011022714A (ja) * 2009-07-14 2011-02-03 Canon Inc データ処理装置
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
KR20170084969A (ko) * 2016-01-13 2017-07-21 삼성전자주식회사 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443175B2 (en) * 2009-07-10 2013-05-14 Via Technologies, Inc. Microprocessor with first processor for debugging second processor
CN101710300B (zh) * 2009-11-03 2011-11-02 龙芯中科技术有限公司 实现多核处理器ejtag可调试性的装置及系统
JP5575947B2 (ja) * 2013-04-04 2014-08-20 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271185A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 通信システム及びその障害管理方式
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 (ja) * 2009-07-14 2011-02-03 Canon Inc データ処理装置
KR20170084969A (ko) * 2016-01-13 2017-07-21 삼성전자주식회사 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080395A1 (ko) * 2022-10-12 2024-04-18 엘지전자 주식회사 시스템 교착 상태를 해소하는 복원 장치 및 방법

Also Published As

Publication number Publication date
KR102550886B1 (ko) 2023-07-05
CN110347639A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
TWI588649B (zh) 硬體修復方法、硬體修復系統以及計算機可讀取儲存裝置
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
US9529750B2 (en) Service processor (SP) initiated data transaction with bios utilizing interrupt
US20140068350A1 (en) Self-checking system and method using same
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
KR101813480B1 (ko) 하드웨어 기반 디바이스간 리소스 공유
US9298371B1 (en) System and method of reducing write cycles and increasing longevity of non-volatile memory in baseboard management controller (BMC)
KR102550886B1 (ko) 시스템 온 칩 및 그 동작 방법
US9749189B2 (en) Generating graphical diagram of physical layout of computer platforms
JP4886558B2 (ja) 情報処理装置
US10962593B2 (en) System on chip and operating method thereof
EP2869189A1 (en) Boot up of a multiprocessor computer
JP5133649B2 (ja) 電子機器およびメモリ管理プログラム
EP2639692A2 (en) Memory dump program, information processing apparatus, and memory dump method
JP6433966B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2014182676A (ja) ログ採取装置、演算装置、およびログ採取方法
TWI794997B (zh) 固態硬碟裝置的除錯方法及裝置以及電腦程式產品
US11900150B2 (en) Methods and systems for collection of system management interrupt data
EP3340010B1 (en) Printing apparatus and method for controlling the same
RU180783U1 (ru) Электронно-вычислительная машина
US20140025982A1 (en) Information processing equipment and control method

Legal Events

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