KR20130101927A - 디버깅 기능을 가지는 멀티코어 SoC - Google Patents
디버깅 기능을 가지는 멀티코어 SoC Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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/2242—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling 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에 관한 것으로서, 더욱 상세하게는 기존의 싱글코어 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)의 구성을 도시한 블록도이다.
도 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 : 비교기
PDI : 프로세서 디버그 인터페이스 BDI : 버스 디버그 인터페이스
320 : 프로세서
322 : 코어 OCD : 온 코어 디버그
324 : 캐시 메모리
330 : 버스 매트릭스
340 : 메모리 제어기
350 : 고속 주변장치
360 : 저속 주변장치
OPD : 온 퍼리퍼럴 디버그
352 : 제어 레지스터 354 : 조건 레지스터
356 : 비교기
Claims (4)
- 온 코어 디버그(OCD)를 각각 구비하는 하나 이상의 프로세서;
상기 하나 이상의 프로세서와 하나 이상의 주변장치 간의 버스 연결을 위한 버스 매트릭스; 및
상기 온 코어 디버그(OCD)와 통신하기 위한 프로세서 디버그 인터페이스(PDI) 및 상기 버스 매트릭스와 통신하기 위한 버스 디버그 인터페이스(BDI)를 구비하는 디버그 인터페이스를 포함하는 디버깅 기능을 가지는 멀티코어 Soc.
- 제 1항에 있어서,
상기 주변장치는 디버깅용 로직인 온 퍼리퍼럴 디버그(OPD)를 포함하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
- 제 2항에 있어서,
상기 온 코어 디버그(OCD)는 상기 온 퍼리퍼럴 디버그(OPD)에서 출력되는 비교결과신호를 입력받아 상기 프로세서의 디버깅 동작에 참조하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
- 제 2항에 있어서, 상기 온 퍼리퍼럴 디버그(OPD)는
상기 버스 매트릭스의 마스터 포트에 연결되는 상기 버스 디버그 인터페이스(BDI) 또는 상기 프로세서로부터 디버깅 제어와 관련된 설정정보 및 디버깅 조건과 관련된 설정정보를 각각 입력받는 제어 레지스터 및 조건 레지스터; 및
상기 제어 레지스터의 설정정보에 따라 상기 조건 레지스터의 설정정보 및 주변회로의 비교 대상 신호를 비교하여 비교결과신호를 출력하는 비교기를 포함하는 것을 특징으로 하는 디버깅 기능을 가지는 멀티코어 SoC.
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)
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)
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)
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 |
-
2012
- 2012-03-06 KR KR1020120023052A patent/KR20130101927A/ko not_active Application Discontinuation
-
2013
- 2013-03-05 US US13/785,609 patent/US20130238933A1/en not_active Abandoned
Cited By (1)
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 |