KR20130101927A - 디버깅 기능을 가지는 멀티코어 SoC - Google Patents

디버깅 기능을 가지는 멀티코어 SoC Download PDF

Info

Publication number
KR20130101927A
KR20130101927A KR1020120023052A KR20120023052A KR20130101927A KR 20130101927 A KR20130101927 A KR 20130101927A KR 1020120023052 A KR1020120023052 A KR 1020120023052A KR 20120023052 A KR20120023052 A KR 20120023052A KR 20130101927 A KR20130101927 A KR 20130101927A
Authority
KR
South Korea
Prior art keywords
debug
debugging
processor
core
soc
Prior art date
Application number
KR1020120023052A
Other languages
English (en)
Inventor
신경선
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020120023052A priority Critical patent/KR20130101927A/ko
Priority to US13/785,609 priority patent/US20130238933A1/en
Publication of KR20130101927A publication Critical patent/KR20130101927A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

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

Abstract

디버깅 기능을 가지는 멀티코어 SoC가 개시된다. 디버깅 기능을 가지는 멀티코어 SoC는 온 코어 디버그(OCD)를 각각 구비하는 하나 이상의 프로세서, 하나 이상의 프로세서와 하나 이상의 주변장치 간의 버스 연결을 위한 버스 매트릭스 및 온 코어 디버그(OCD)와 통신하기 위한 프로세서 디버그 인터페이스(PDI) 및 버스 매트릭스와 통신하기 위한 버스 디버그 인터페이스(BDI)를 구비하는 디버그 인터페이스를 포함한다. 본 발명에 따르면, 기존의 싱글코어 SoC 비해 복잡해진 멀티코어 SoC(System on Chip)의 기능을 효율적으로 검증할 수 있다.

Description

디버깅 기능을 가지는 멀티코어 SoC{MULTI-CORE SoC HAVING A FUNCTION OF DEBUGGING}
본 발명은 디버깅 기능을 가지는 멀티코어 SoC에 관한 것으로서, 더욱 상세하게는 기존의 싱글코어 SoC(System on Chip)에 비해 복잡해진 기능을 효율적으로 검증할 수 있는 디버깅 기능을 가지는 멀티코어 SoC에 관한 것이다.
최근 시스템 반도체 기술의 발달로 프로세서 내장형 SoC(System on Chip)가 개인용 휴대기기로부터 산업용 자동화 장치에 이르기까지 임베디드 시스템의 전분야에서 광범위하게 적용되고 있다.
특히 최근 스마트폰 같은 휴대형 멀티미디어 기기의 고성능화 요구에 따라 컴퓨터 시스템에서 주로 사용되었던 멀티코어 프로세서 기술이 임베디드 시스템용 SoC에도 급속하게 적용되고 있다.
도 1은 일반적인 디버깅 시스템의 구성을 도시한 블록도이다.
도 1을 참조하면, 일반적인 디버깅 시스템은 호스트 시스템(110), 디버깅 신호 발생기(120), 프로세서 SoC(130), 고속 메모리(140) 및 주변장치(150)를 포함한다.
호스트 시스템(110)은 사용자와의 인터페이스(예를 들어, GUI, 커맨드 입력 등)를 통하여 디버깅 관련 명령 및 디버깅 정보를 관리하며, 통신 포트를 통해 디버깅 신호 발생기(120)와 전기적 신호를 교환한다.
디버깅 신호 발생기(120)는 호스트 시스템(110)과 프로세서 SoC(130) 사이에서 디버깅 관련 정보를 전기 신호로 변환하는 기능을 담당한다. 예를 들어, 호스트 시스템(110)의 통신 포트로 USB 포트를 사용하고, 프로세서 SoC 디버깅용 포트를 JTAG 표준 신호로 사용한다면 디버깅 신호 발생기(120)는 쉽게 확보할 수 있는 USB-to-JTAG 신호발생기로 구성될 수 있다.
디버깅 목표인 프로세서 SoC(130)는 디버깅 정보를 입/출력하는 디버깅 포트와 외부 장치(예를 들어, 고속 메모리(140) 및 주변장치(150))와 연결되며 호스트 시스템(110)에서 발생되는 디버깅 기능(데이터 로드, 프로세서 실행, 정지, 프로세서 상태 조사, 메모리 액세스 등)을 수행한다.
도 2는 도 1의 프로세서 SoC가 싱글코어 SoC인 경우에 그 구성을 도시한 블록도이다.
싱글코어 SoC는 기본적으로 코어(212)와 캐시 메모리(214)를 포함하는 프로세서(210)와, 버스(230), 메모리 제어기(240), 고속 주변장치(250)(예를 들어, 비디오 컨트롤러), 저속 주변장치(260)(예를 들어, UART)를 포함한다.
프로세서(210)는 외부 메모리에 저장되어 있는 명령어들을 순차적으로 읽어 들여 동작 사이클마다 특정 연산을 하며, 필요에 따라 연산 결과가 주변장치의 제어에 사용된다.
캐시 메모리(214)는 외부 메모리에서 데이터를 읽어오는 시간을 줄이기 위하여 자주 사용된 데이터를 임시 저장하고, 코어(212)가 빠른 시간에 접근할 수 있도록 하여 프로세서(210)의 처리 성능을 높이는 역할을 한다.
디버깅 측면에서 살펴보면, 코어(212)는 온 코어 디버그(OCD; On Core Debug)를 포함하고, 기본적으로 프로세서(210)는 호스트 시스템(110)에서 발생되는 디버깅 기능(예를 들어, 데이터 로딩, 프로세서 실행, 정지, 코어 상태 조사, 메모리 접근 등)을 수행한다.
그러나, 종래기술에 따른 디버깅 시스템은 아래와 같은 문제점을 가진다.
먼저, 프로세서(210)의 실행 정지, 코어 상태 조사 등의 디버깅 기능은 온 코어 디버그(OCD) 자체에서 수행될 수 있지만, 프로세서(210) 외부에 존재하는 메모리, 주변회로 등에 접근하는 데이터 로딩, 메모리 읽기/쓰기, 주변장치 상태 조사 등의 수행을 위해서는 코어(212)가 별도로 제작된 디버깅용 프로그램을 수행해야 하는 문제점이 있다.
즉, 프로그램 디버깅을 수행하는 경우 기존의 디버깅 대상의 프로그램을 정지하고 디버깅 기간 동안 디버깅 프로그램을 수행하기 때문에 하드웨어 블록 검증을 병행해야 되는 SoC 초기 설계 시점 및 프로토타입(예를 들어, FPGA) 검증 단계에서는 자체 디버깅 프로그램 수행 과정에서의 하드웨어 또는 소프트웨어 불량 원인 등으로 인한 오류로 검증 시간의 증가가 가중되는 원인이 된다.
또한, 사이클 단위의 정확한 주변장치 제어를 필요로 하는 임베디드 시스템에서, 버스(230)의 슬레이브(Slave) 단에 위치한 주변장치의 상태 변화(예를 들어, 주변 장치의 특정 레지스터 변경)에 따른 코어 프로세서 동작 디버깅을 목적으로 할 경우 기존의 온 코어 디버그(OCD)를 이용한 방법으로는 원하는 결과를 얻을 수 없는 문제점도 있다.
특히, 멀티코어를 내장한 SoC인 경우에는, 여러 단계의 파이프라인 수행 및 캐시 메모리 버퍼링을 갖는 프로세서들의 조합에 따른 병렬 프로그램 디버깅의 복잡성, 메인 메모리 공유에 따른 데이터 싱크 문제, 다중 마스터(예를 들어, 코어)와 다중 슬레이브(예를 들어 주변장치)간의 버스 매트릭스 구현에 따른 하드웨어의 복잡성으로 개발 초기 단계에서의 하드웨어 통합 검증 및 응용 프로그램 개발 단계에서의 검증 시간과 디버깅 노력이 훨씬 더 가중되는 문제점도 있다.
관련 선행기술로는 대한민국 특허공개공보 제2008-0022181호(2008.03.10 공개, 발명의 명칭 : 마이크로컨트롤러의 내부 메모리를 이용하여 트레이스 정보를 저장 및 추출하는 메커니즘)가 있다.
본 발명은 전술한 문제점을 개선하기 위해 창안된 것으로서, 기존의 싱글코어 SoC(System on Chip)에 비해 복잡해진 기능을 효율적으로 검증할 수 있는 디버깅 기능을 가지는 멀티코어 SoC를 제공하는데 그 목적이 있다.
또한, 본 발명은 멀티코어에서 동작되는 병렬 프로그램 디버깅의 어려움을 해소하고 메모리 또는 주변회로 디버깅 시에 온 코어 디버그(OCD)만을 이용한 디버깅 프로그램의 오버헤드를 제거함으로써 프로그램 개발 단계에서도 신뢰성 있는 디버깅 정보를 제공할 수 있는 디버깅 기능을 가지는 멀티코어 SoC를 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 디버깅 기능을 가지는 멀티코어 SoC는 온 코어 디버그(OCD)를 각각 구비하는 하나 이상의 프로세서; 상기 하나 이상의 프로세서와 하나 이상의 주변장치 간의 버스 연결을 위한 버스 매트릭스; 및 상기 온 코어 디버그(OCD)와 통신하기 위한 프로세서 디버그 인터페이스(PDI) 및 상기 버스 매트릭스와 통신하기 위한 버스 디버그 인터페이스(BDI)를 구비하는 디버그 인터페이스를 포함한다.
본 발명에서 상기 주변장치는 디버깅용 로직인 온 퍼리퍼럴 디버그(OPD)를 포함하는 것을 특징으로 한다.
본 발명에서 상기 온 코어 디버그(OCD)는 상기 온 퍼리퍼럴 디버그(OPD)에서 출력되는 비교결과신호를 입력받아 상기 프로세서의 디버깅 동작에 참조하는 것을 특징으로 한다.
본 발명에서 상기 온 퍼리퍼럴 디버그(OPD)는 상기 버스 매트릭스의 마스터 포트에 연결되는 상기 버스 디버그 인터페이스(BDI) 또는 상기 프로세서로부터 디버깅 제어와 관련된 설정정보 및 디버깅 조건과 관련된 설정정보를 각각 입력받는 제어 레지스터 및 조건 레지스터; 및 상기 제어 레지스터의 설정정보에 따라 상기 조건 레지스터의 설정정보 및 주변회로의 비교 대상 신호를 비교하여 비교결과신호를 출력하는 비교기를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 복수의 프로세서 코어, 메모리 및 주변장치를 구비하는 멀티코어 SoC에서 기존의 싱글코어 SoC 비해 복잡해진 기능을 효율적으로 검증할 수 있다.
또한, 본 발명에 따르면, 각 프로세서의 온 코어 디버그(OCD)를 제어할 수 있어 멀티코어에서 동작되는 병렬 프로그램의 디버깅이 가능하고, 프로세서에서 디버깅 프로그램을 실행시키지 않고 주변장치의 디버깅이 가능하여 프로세서의 오버헤드를 제거할 수 있다.
또한, 본 발명에 따르면 사이클 단위로 동작하는 주변장치의 상태 변화에 따른 프로세서 동작의 디버깅을 가능하게 함으로써, SoC 설계 단계에서의 각 구성회로의 하드웨어 통합 검증 시간을 단축하고 소프트웨어 개발 단계에서도 다양한 접근 경로를 통한 신뢰성 있는 디버깅 정보를 제공할 수 있는 효과도 있다.
도 1은 일반적인 디버깅 시스템의 구성을 도시한 블록도이다.
도 2는 도 1의 프로세서 SoC가 싱글코어 SoC인 경우에 그 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC의 구성을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC에서 온 퍼리퍼럴 디버그(OPD)의 구성을 도시한 블록도이다.
이하에서는 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC를 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야할 것이다.
도 3은 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC의 구성을 도시한 블록도이고, 도 4는 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC에서 온 퍼리퍼럴 디버그(OPD)의 구성을 도시한 블록도이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC는 외부와 디버그 신호를 인터페이스 하는 디버그 인터페이스(310), 외부 메모리에 저장되어 있는 명령어들을 순차적으로 읽어들여 동작 사이클마다 미리 지정된 연산을 수행하는 하나 이상의 프로세서(320), 하나 이상의 프로세서(320)와 복수의 주변장치(340, 350, 360) 간의 버스 연결을 위한 버스 매트릭스(330), 프로세서(320)의 요구에 의해 외부 메모리(예를 들어, 고속 대용량 DDR, 플래시 메모리, SRAM 등)의 데이터에 접근하기 위한 메모리 제어기(340), 프로세서(320)의 요구에 의해 미리 지정된 동작을 수행하는 고속 주변장치(350) 및 저속주변장치(360)를 포함할 수 있다.
디버그 인터페이스(310)는 통상의 JTAG 규격의 신호로 외부와 연결되며 각 프로세서(320)의 온 코어 디버그(OCD)를 제어하기 위한 프로세서 디버그 인터페이스(PDI; Processor Debug Interface) 및 버스 매트릭스(330)의 마스터(Master) 포트에 직접 연결하기 위한 버스 디버그 인터페이스(BDI; Bus Debug Interface)를 포함할 수 있다.
프로세서 디버그 인터페이스(PDI)는 멀티코어 SoC에 내장되는 프로세서(320)의 개수만큼 구비될 수 있으며, 각 프로세서(320) 내에 포함된 온 코어 디버그(OCD)와 통신 가능한 신호 체계를 따르도록 구현될 수 있다.
예를 들어, 프로세서 디버그 인터페이스(PDI)는 구현이 용이한 통상의 메모리 인터페이스(Address, Data, Read/Write Control) 신호로 구현될 수 있다.
또한, 버스 디버그 인터페이스(BDI)는 버스 매트릭스(330)의 마스터(Master) 포트와 통신 가능한 신호 체계를 따르도록 구현될 수 있다.
예를 들어, 버스 디버그 인터페이스(BDI)는 통상의 오픈 버스 규격인 AHB, AXI 규격 등으로도 구현될 수 있다.
버스 매트릭스(330)는 마스터(Master) 포트에 연결되는 프로세서(320) 및 버스 디버그 인터페이스(BDI)를 슬레이브(Slave) 포트를 통해 디버깅 대상이 되는 주변장치(340, 350, 360)에 접근 가능하도록 구성된다.
한편, 본 발명의 일 실시예에 따른 디버깅 기능을 가지는 멀티코어 SoC에서 메모리 제어기(340), 고속 주변장치(350) 및 저속 주변장치(360)와 같이 사이클 단위의 디버깅이 필요한 주변장치에는 온 퍼리퍼럴 디버그(OPD; On Peripheral Debug)가 구비되며, 그 일 예로 도 4에는 고속 주변장치(350)에 구비되는 온 퍼리퍼럴 디버그(OPD)의 구성이 도시되어 있다.
온 퍼리퍼럴 디버그(OPD)는 사이클 단위의 동작 변화에 따른 디버깅이 필요한 주변장치에 추가되는 디버깅용 로직으로, 도 4에 도시된 바와 같이 제어 레지스터(352), 조건 레지스터(354) 및 비교기(356)를 포함한다.
제어 레지스터(352)와 조건 레지스터(354)는 버스 매트릭스(330)의 마스터(Master) 포트에 연결되는 버스 디버그 인터페이스(BDI) 또는 프로세서(320)로부터 설정정보를 입력받는다.
이때, 제어 레지스터(352)에는 디버깅 제어 모드에 관련된 설정정보가 입력될 수 있고, 조건 레지스터(354)에는 어드레스, 데이터, 리드/라이트(read/write) 신호 등 디버깅 조건에 관련된 설정정보가 입력될 수 있다.
비교기(352)는 조건 레지스터(354)의 설정정보와 주변회로(358)의 비교 대상 신호들을 비교하여 비교결과신호(BR_Slave)를 프로세서(320)에 내의 온 코어 디버그(OCD)로 출력한다.
이후, 프로세서(320) 내의 온 코어 디버그(OCD)는 메모리 제어기(340), 고속 주변장치(350) 및 저속 주변장치(360)에 각각 구비되는 온 퍼리퍼럴 디버그(OPD)로부터 비교결과신호(BR_Slave)를 입력받아 프로세서(320)의 디버깅 동작에 참조한다.
이와 같이, 본 발명에 따른 디버깅 기능을 가지는 멀티코어 SoC는 프로세서 내장형 SoC를 개발하는 경우 저비용으로 쉽게 구축할 수 있는 일반적인 디버깅 시스템에 적용 가능하다는 장점을 가진다.
호스트 시스템에서 개발되는 디버깅 프로그램은 사용자와의 인터페이스를 제공하며 사용자는 이 프로그램을 이용하여 멀티코어 SoC 내의 프로세서(320)를 개별적으로도 제어할 수 있으며, 특히 도 3에 도시된 프로세서 디버그 인터페이스(PDI)인 PDI_0 및 PDI_1을 같이 활성화시켜 각 프로세서에서 동작되는 병렬 프로그램의 디버깅이 가능하다.
또한, 사용자는 버스 디버그 인터페이스(BDI)를 통하여 버스 매트릭스(330)의 슬레이브(Slave) 포트에 연결된 디버깅 대상이 되는 모든 주변장치(340, 350, 360)에 마스터(Master) 자격으로 접근이 가능하다.
따라서, 본 발명은 SoC 개발 단계에서 하드웨어 통합 검증에 유용하게 사용할 수 있으며, 프로세서(320)의 프로그램 디버깅 단계에서 프로세서(320) 동작에 따른 주변장치(340, 350, 360)의 동작을 디버깅하고자 하는 경우, 버스 디버그 인터페이스(BDI)를 통해 직접 데이터를 수집할 수 있어 프로세서(320)에서 디버깅 전용 프로그램을 실행함에 따라 발생하는 오버헤드를 제거할 수 있다.
임베디드 시스템의 프로그램 개발에서는 주변장치(340, 350, 360)의 실시간 변화에 따른 프로그램 디버깅이 자주 필요하며, 이 경우 사용자는 호스트 시스템(110)의 디버깅 프로그램을 이용하여 버스 디버그 인터페이스(BDI)를 제어함으로써 디버깅 대상이 되는 주변장치(340, 350. 360)의 온 퍼리퍼럴 디버그(OPD)로 접근하여 디버깅 조건을 설정할 수도 있다.
온 퍼리퍼럴 디버그(OPD)는 미리 설정된 조건과 실제 실행되는 상황을 판단하여(예를 들어, 주변회로(358)의 특정 어드레스에 특정 값이 라이트 될 때) 비교결과신호(BR_Slave)를 출력한다.
이러한 비교결과신호(BR_Slave)는 각 프로세서(320)의 온 코어 디버그(OCD)에 입력되며, 프로세서(320) 동작을 멈추게 함으로써 실시간으로 프로세서(320)의 상태를 검사할 수 있다. 즉 주변장치(340, 350, 360)의 변화 발생 시점과 동일한 시점에 프로세서(320)의 디버깅이 가능하게 되는 것이다.
이처럼 본 발명에 따른 디버깅 기능을 가지는 멀티코어 SoC에 따르면, 복수의 프로세서 코어, 메모리 및 주변장치를 구비하는 멀티코어 SoC에서 기존의 싱글코어 SoC 비해 복잡해진 기능을 효율적으로 검증할 수 있다.
또한, 멀티코어에서 동작되는 병렬 프로그램 디버깅의 어려움을 해소하고, 메모리 또는 주변회로 디버깅 시 기존의 온 코어 디버그(OCD)를 이용한 디버깅 프로그램의 오버헤드를 제거하며, 사이클 단위의 주변장치의 상태 변화에 따른 프로세서 동작의 디버깅을 가능하게 할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.
310 : 디버그 인터페이스
PDI : 프로세서 디버그 인터페이스 BDI : 버스 디버그 인터페이스
320 : 프로세서
322 : 코어 OCD : 온 코어 디버그
324 : 캐시 메모리
330 : 버스 매트릭스
340 : 메모리 제어기
350 : 고속 주변장치
360 : 저속 주변장치
OPD : 온 퍼리퍼럴 디버그
352 : 제어 레지스터 354 : 조건 레지스터
356 : 비교기

Claims (4)

  1. 온 코어 디버그(OCD)를 각각 구비하는 하나 이상의 프로세서;
    상기 하나 이상의 프로세서와 하나 이상의 주변장치 간의 버스 연결을 위한 버스 매트릭스; 및
    상기 온 코어 디버그(OCD)와 통신하기 위한 프로세서 디버그 인터페이스(PDI) 및 상기 버스 매트릭스와 통신하기 위한 버스 디버그 인터페이스(BDI)를 구비하는 디버그 인터페이스를 포함하는 디버깅 기능을 가지는 멀티코어 Soc.
  2. 제 1항에 있어서,
    상기 주변장치는 디버깅용 로직인 온 퍼리퍼럴 디버그(OPD)를 포함하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
  3. 제 2항에 있어서,
    상기 온 코어 디버그(OCD)는 상기 온 퍼리퍼럴 디버그(OPD)에서 출력되는 비교결과신호를 입력받아 상기 프로세서의 디버깅 동작에 참조하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
  4. 제 2항에 있어서, 상기 온 퍼리퍼럴 디버그(OPD)는
    상기 버스 매트릭스의 마스터 포트에 연결되는 상기 버스 디버그 인터페이스(BDI) 또는 상기 프로세서로부터 디버깅 제어와 관련된 설정정보 및 디버깅 조건과 관련된 설정정보를 각각 입력받는 제어 레지스터 및 조건 레지스터; 및
    상기 제어 레지스터의 설정정보에 따라 상기 조건 레지스터의 설정정보 및 주변회로의 비교 대상 신호를 비교하여 비교결과신호를 출력하는 비교기를 포함하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
KR1020120023052A 2012-03-06 2012-03-06 디버깅 기능을 가지는 멀티코어 SoC KR20130101927A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120023052A KR20130101927A (ko) 2012-03-06 2012-03-06 디버깅 기능을 가지는 멀티코어 SoC
US13/785,609 US20130238933A1 (en) 2012-03-06 2013-03-05 Multi-core soc having debugging function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120023052A KR20130101927A (ko) 2012-03-06 2012-03-06 디버깅 기능을 가지는 멀티코어 SoC

Publications (1)

Publication Number Publication Date
KR20130101927A true KR20130101927A (ko) 2013-09-16

Family

ID=49115161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120023052A KR20130101927A (ko) 2012-03-06 2012-03-06 디버깅 기능을 가지는 멀티코어 SoC

Country Status (2)

Country Link
US (1) US20130238933A1 (ko)
KR (1) KR20130101927A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884056B2 (en) 2017-02-06 2021-01-05 Samsung Electronics Co., Ltd. System-on-chip including CPU operating as debug host and method of operating the same

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606888B1 (en) * 2013-01-04 2017-03-28 Marvell International Ltd. Hierarchical multi-core debugger interface
US9582388B2 (en) * 2014-10-03 2017-02-28 Globalfoundries Inc. Dynamic multi-purpose external access points connected to core interfaces within a system on chip (SOC)
US9626265B2 (en) 2015-06-29 2017-04-18 International Business Machines Corporation Efficiency of cycle-reproducible debug processes in a multi-core environment
US10198332B2 (en) * 2016-10-07 2019-02-05 Infineon Technologies Ag System on chip integrity verification method and system
CN108021476B (zh) * 2016-10-31 2020-03-20 华为技术有限公司 一种互联接口的测试方法、装置和计算设备
CN107273256A (zh) * 2017-06-22 2017-10-20 湖南国科微电子股份有限公司 一种Soc芯片的调试方法及系统
US11352133B2 (en) 2017-12-28 2022-06-07 Intel Corporation Systems, cableless drone swarm systems, method and apparatus
US11340978B2 (en) * 2017-12-28 2022-05-24 Intel Corporation Methods, systems and apparatus for functional safety implementation
CN110134640B (zh) * 2018-02-09 2024-03-01 上海中研久弋科技有限公司 多核心传感器数据处理芯片及运行方法
KR102376750B1 (ko) 2018-09-13 2022-03-21 한국전자통신연구원 디버깅을 위한 네트워크를 포함하는 시스템 온 칩
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法
JP7400537B2 (ja) 2020-02-27 2023-12-19 セイコーエプソン株式会社 半導体装置
JP7413832B2 (ja) * 2020-02-27 2024-01-16 セイコーエプソン株式会社 半導体装置
JP7400536B2 (ja) 2020-02-27 2023-12-19 セイコーエプソン株式会社 半導体装置
JP7500994B2 (ja) * 2020-02-27 2024-06-18 セイコーエプソン株式会社 半導体装置
US11442844B1 (en) * 2020-06-01 2022-09-13 Xilinx, Inc. High speed debug hub for debugging designs in an integrated circuit
CN113284452A (zh) * 2021-05-31 2021-08-20 深圳市华星光电半导体显示技术有限公司 显示装置及其控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
JP4481695B2 (ja) * 2004-03-25 2010-06-16 ルネサスエレクトロニクス株式会社 デバッグ用切換器、デバッグ方法
US7340693B2 (en) * 2005-02-24 2008-03-04 Nick Martin System for designing re-programmable digital hardware platforms
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US20070300115A1 (en) * 2006-06-01 2007-12-27 Ramyanshu Datta Apparatus and method for accelerating test, debug and failure analysis of a multiprocessor device
US7836283B2 (en) * 2007-08-31 2010-11-16 Freescale Semiconductor, Inc. Data acquisition messaging using special purpose registers
US9325352B2 (en) * 2009-12-30 2016-04-26 Intel Deutschland Gmbh Control architectures for RF transceivers
US9575758B2 (en) * 2010-11-22 2017-02-21 Nxp Usa, Inc. Method for setting breakpoints, and an integrated circuit and debug tool therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884056B2 (en) 2017-02-06 2021-01-05 Samsung Electronics Co., Ltd. System-on-chip including CPU operating as debug host and method of operating the same

Also Published As

Publication number Publication date
US20130238933A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
KR20130101927A (ko) 디버깅 기능을 가지는 멀티코어 SoC
US7469273B2 (en) Multi-processor system verification circuitry
US9152520B2 (en) Programmable interface-based validation and debug
US10776233B2 (en) Programmable test instrument
US10026499B2 (en) Memory testing system
CN115146568B (zh) 一种基于uvm的芯片验证系统及验证方法
CN107885517B (zh) 嵌入式系统处理器程序加载电路
US20160299859A1 (en) Apparatus and method for external access to core resources of a processor, semiconductor systems development tool comprising the apparatus, and computer program product and non-transitory computer-readable storage medium associated with the method
US8799715B2 (en) System on a chip (SOC) debug controllability
US7428661B2 (en) Test and debug processor and method
WO2012127955A1 (ja) 半導体装置
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US7526691B1 (en) System and method for using TAP controllers
JP2019204388A (ja) 半導体装置、およびデバッグ方法
US10754743B2 (en) Apparatus and method using debug status storage element
WO2022235265A1 (en) Debug channel for communication between a processor and an external debug host
US9721048B1 (en) Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system
US20090031179A1 (en) Jtag test code and data compiler and method
US20210173989A1 (en) Simulation signal viewing method and system for digital product
US10872030B2 (en) Control system and method of to perform an operation
US20230115615A1 (en) Global time counter based debug
US10120737B2 (en) Apparatus for detecting bugs in logic-based processing devices
May Exploration of FPGA based accelerators in Linux host systems
TW432277B (en) Pre-boot debugging device and method of computer system
KR20140113175A (ko) 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid