KR102376750B1 - 디버깅을 위한 네트워크를 포함하는 시스템 온 칩 - Google Patents

디버깅을 위한 네트워크를 포함하는 시스템 온 칩 Download PDF

Info

Publication number
KR102376750B1
KR102376750B1 KR1020180109862A KR20180109862A KR102376750B1 KR 102376750 B1 KR102376750 B1 KR 102376750B1 KR 1020180109862 A KR1020180109862 A KR 1020180109862A KR 20180109862 A KR20180109862 A KR 20180109862A KR 102376750 B1 KR102376750 B1 KR 102376750B1
Authority
KR
South Korea
Prior art keywords
signal
local controller
local
target
controller
Prior art date
Application number
KR1020180109862A
Other languages
English (en)
Other versions
KR20200030979A (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 KR1020180109862A priority Critical patent/KR102376750B1/ko
Priority to US16/556,905 priority patent/US11470018B2/en
Publication of KR20200030979A publication Critical patent/KR20200030979A/ko
Application granted granted Critical
Publication of KR102376750B1 publication Critical patent/KR102376750B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • 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/2273Test methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers

Abstract

본 발명은 중앙 컨트롤러 및 로컬 컨트롤러를 포함한다. 중앙 컨트롤러는, 호스트로부터의 요청에 응답하여, 대상 IP(Intellectual property)의 설계로부터 발생하는 에러와 관련되는 에러 정보를 요청하기 위한 제 1 신호를 생성한다. 로컬 컨트롤러는, 제 1 신호에 기초하여 호스트로부터의 요청이 대상 IP에 대한 것으로 판별되는 경우, 대상 IP의 에러 정보를 포함하는 제 2 신호를 생성한다. 중앙 컨트롤러는 제 2 신호에 기초하여 대상 IP의 에러 정보를 호스트로 전달한다.

Description

디버깅을 위한 네트워크를 포함하는 시스템 온 칩{SYSTEM ON CHIP INCLUDING NETWORK FOR DEBUGGING}
본 발명은 시스템 온 칩에 관한 것으로, 좀 더 상세하게는 디버깅을 위한 시스템 온 칩에 관한 것이다.
반도체 산업의 성장과 반도체 공정 기술의 진보가 비약적으로 이루어지면서 반도체의 집적도가 매우 높아지고 있고, 반도체 시스템도 복잡해지고 있다. 예로서, 전자 장치에 의해 수행되는 다양한 멀티미디어 기능들을 지원하기 위해서, 시스템 온 칩(System on Chip; SoC)은 집적된 수백만 개의 논리 게이트들을 포함할 수 있다.
시스템 온 칩은 데이터를 처리 및 저장하기 위한 컴퓨터 시스템을 하나의 반도체 칩으로 구현한 것을 의미한다. 예로서, 시스템 온 칩은 마이크로프로세서(microprocessor), DSP(Digital Signal Processor), RAM(Random Access Memory), 및 ROM(Read Only Memory) 등을 포함할 수 있다. 시스템 온 칩 내에서 데이터를 처리하고 저장하기 위한 모든 기능이 수행될 수 있다.
반도체 칩의 집적도가 높아짐에 따라 반도체 칩에 대한 설계 및 검증에 소비되는 시간도 급격하게 증가하고 있다. 반도체 칩에 대한 설계 및 검증에 소비되는 시간은 반도체 칩에 대한 개발 시간의 높은 비율을 차지한다. 따라서, 시스템 온 칩과 같은 높은 집적도의 반도체 칩을 빠르고 쉽게 설계하기 위해, 반도체 칩의 설계 과정에서 발생하는 에러를 쉽게 디버깅(debugging)하기 위한 기술이 요구된다.
본 발명은 IP(Intellectual Property)를 디버깅하기 위한 네트워크를 포함하는 시스템 온 칩을 제공할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 중앙 컨트롤러 및 로컬 컨트롤러를 포함할 수 있다. 중앙 컨트롤러는, 호스트로부터의 요청에 응답하여, 대상 IP의 설계로부터 발생하는 에러와 관련되는 에러 정보를 요청하기 위한 제 1 신호를 생성할 수 있다. 로컬 컨트롤러는, 제 1 신호에 기초하여 호스트로부터의 요청이 대상 IP에 대한 것으로 판별되는 경우, 대상 IP의 에러 정보를 포함하는 제 2 신호를 생성할 수 있다. 중앙 컨트롤러는 제 2 신호에 기초하여 대상 IP의 에러 정보를 호스트로 전달할 수 있다.
본 발명의 실시 예에 따르면, IP가 설계되는 과정에서 발생하는 에러를 쉽게 디버깅 하는 시스템 온 칩이 제공될 수 있다.
도 1은 본 발명의 실시 예에 따라 통신하는 호스트 및 시스템 온 칩(System on Chip; SoC)을 보여주는 블록도 이다.
도 2 및 도 3은 도 1의 관리자 네트워크의 예시적인 구성을 보여주는 블록도 이다.
도 4는 도 2 및 도 3의 로컬 네트워크에 포함되는 로컬 컨트롤러의 예시적인 구성을 보여주는 블록도 이다.
도 5는 도 4의 로컬 컨트롤러의 동작들을 보여주는 순서도 이다.
도 6은 도 4의 신호들에 의해 나타나는 예시적인 패키지 데이터를 보여주는 개념도 이다.
도 7은 본 발명의 실시 예에 따른 시스템 온 칩의 구성을 보여주는 블록도 이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 통상의 기술자 의해 수행될 수 있다. 더욱이, 명확성 및 간결성을 위하여 잘 알려진 기능들 및 구조들에 대한 설명들은 생략된다. 본 명세서에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 회로들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
도 1은 본 발명의 실시 예에 따라 통신하는 호스트 및 시스템 온 칩(System on Chip; SoC)을 보여주는 블록도 이다.
도 1을 참조하면, 시스템 온 칩(20)은 관리자 네트워크(100) 및 네트워크 온 칩(Network on Chip; NoC, 200)을 포함할 수 있다. 호스트(10)는 다양한 전자 장치들 중 적어도 하나를 포함할 수 있다. 예로서, 호스트(10)는 개인용 컴퓨터(Personal Computer, PC), 워크스테이션(Workstation), 노트북 컴퓨터, 이동식 장치 등의 전자 장치들 중 적어도 하나를 포함할 수 있다. 또는, 호스트(10)는 하나 이상의 전자 장치의 동작들을 제어할 수 있는 프로세서 장치 그 자체(예컨대, CPU(Central Processing Unit), AP(Application Processor) 등)일 수 있다.
예로서, 시스템 온 칩(20)은 반도체 칩의 제작을 위한 설계를 검증하기 위해 제작된 테스트 칩일 수 있다. 예로서, 시스템 온 칩(20)은 하나 이상의 프로세서 코어들을 포함하는 전용 회로, 예컨대, FPGA(Field Programmable Gate Arrays) 또는 ASICs(Application Specific Integrated Circuits) 등으로 구현될 수 있다.
관리자 네트워크(100)는 호스트(10)로부터의 요청에 응답하여 네트워크 온 칩(200)에 대한 디버깅을 수행할 수 있다. 예로서, 관리자 네트워크(100)는 BDM(Background Debug Mode) 및 JTAG(Joint Test Action Group)와 같은 프로토콜 표준에 따른 인터페이스를 통해 호스트로부터 요청을 수신할 수 있다.
예로서, 네트워크 온 칩(200)이 설계되는 과정에서, 설계자의 착오 또는 설계 규칙의 위반에 의해 다양한 에러들이 발생할 수 있다. 본 명세서에서 디버깅은 반도체 칩을 설계하는 과정에서 발생할 수 있는 에러를 검출하고 복구하기 위한 동작을 의미할 수 있다. 이하 더 나은 이해를 위해, 네트워크 온 칩(200)의 에러를 검출하고 복구하기 위한 동작으로서의 디버깅이 예시적으로 설명될 것이다.
디버깅 동안 에러가 검출되지 않고 시스템 온 칩(20)이 검증을 통과하는 경우, 또는 검출된 에러가 디버깅을 통해 정상적으로 복구되는 경우, 시스템 온 칩(20)이 실제로 이용될 최종 칩으로 제작될 수 있다. 따라서, 디버깅은 시스템 온 칩(20)의 신뢰성을 향상시킬 수 있다.
관리자 네트워크(100)는 네트워크 온 칩(200)에 대한 디버깅을 수행하기 위해 네트워크 온 칩(200)과 통신할 수 있다. 네트워크 온 칩(200)은 다양한 기능들(예컨대, 데이터의 처리 및 저장 등)을 수행하기 위해 다양한 토폴로지들에 기반하여 설계될 수 있다. 본 명세서에서 "토폴로지"라는 용어가 사용된다. 본 명세서에서, 몇몇 경우, 토폴로지는 구성요소들이 연결된 구조 또는 형상을 의미할 수 있다. 또는 몇몇 경우, 토폴로지는 구성요소들을 연결하는 방식을 의미할 수 있다.
예로서, 네트워크 온 칩(200)은 하나 이상의 라우터 및 하나 이상의 라우터 에 각각 대응하는 하나 이상의 IP(Intellectual property)를 포함할 수 있다. IP들은 데이터의 처리 및 저장을 위한 다양한 기능들을 수행할 수 있다. 라우터들은 IP들 사이의 통신을 위한 거점들을 제공할 수 있다. IP들은 라우터들을 통한 통신에 의해 처리된 데이터 또는 저장된 데이터를 서로 교환할 수 있다.
IP들 중 적어도 하나는 네트워크 온 칩(200)의 전반적인 동작들을 제어하기 위한 프로세서를 포함할 수 있다. 예로서, IP에 포함되는 프로세서는 마이크로프로세서(microprocessor), 범용 프로세서, 전용 프로세서, 또는 어플리케이션 프로세서(Application Processor) 중 하나로 구현될 수 있다.
IP들 중 적어도 하나는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 및/또는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
IP들 각각은 네트워크 인터페이스를 경유하여 관리자 네트워크(100)와 통신할 수 있다. 도 7을 참조하여, 네트워크 온 칩(200)의 예시적인 구성이 좀 더 구체적으로 설명될 것이다.
도 2는 도 1의 관리자 네트워크의 구체적인 구성을 보여주는 블록도 이다.
도 2를 참조하면, 관리자 네트워크(100)는 중앙 컨트롤러(110) 및 로컬 네트워크(120)를 포함할 수 있다. 로컬 네트워크(120)는 로컬 컨트롤러들(121 내지 123)을 포함할 수 있다. 중앙 컨트롤러(110) 및 로컬 컨트롤러들(121 내지 123) 각각은 네트워크 온 칩(200)의 디버깅을 위해 설계된 전자 회로일 수 있다. 예로서, 중앙 컨트롤러(110) 및 로컬 컨트롤러들(121 내지 123) 각각은 이하 설명될 동작들을 수행하기 위해 FPGA 상에 구현된 하드웨어 모듈일 수 있다. 다만, 본 발명은 이 예로 한정되지 않는다.
도 2에는 3개 이상의 로컬 컨트롤러들(121 내지 123)을 포함하는 로컬 네트워크(120)가 도시되어 있으나, 로컬 네트워크(120)가 로컬 컨트롤러들(121 내지 123)의 동작들과 유사한 동작들을 수행하는 하나 이상의 로컬 컨트롤러를 포함할 수 있음이 잘 이해될 것이다.
로컬 컨트롤러들(121 내지 123)은 로컬 컨트롤러들(121 내지 123)에 각각 대응하는 식별자들을 저장할 수 있다. 본 명세서에서 식별자는 로컬 컨트롤러들(121 내지 123) 각각을 고유하게 식별하는 데 사용되는 데이터, 값, 번호, 또는 정보와 같은 지시자를 의미한다. 예로서, 식별자는 설계자에 의해 임의로 결정되는 n 비트의 데이터로서, 로컬 컨트롤러의 고유 번호를 나타낼 수 있다. 도 4를 참조하여, 식별자 및 식별자에 기초한 로컬 컨트롤러들(121 내지 123)의 동작들이 좀 더 구체적으로 설명될 것이다.
도 2에는 도시되지 않았으나, 로컬 컨트롤러들(121 내지 123) 각각은 도 2의 네트워크 온 칩(200)에 포함되는 적어도 하나의 IP와 연결될 수 있다. 로컬 컨트롤러들(121 내지 123)은 네트워크 온 칩(200)에 포함되는 네트워크 인터페이스들을 통해 IP들과 각각 통신할 수 있다. 도 7을 참조하여, 네트워크 온 칩(200)에 포함되는 IP들과 로컬 컨트롤러들(121 내지 123) 사이의 예시적인 연결관계가 좀 더 구체적으로 설명될 것이다.
중앙 컨트롤러(110)와 로컬 네트워크(120)는 신호(ER)에 기초하여 디버깅을 위한 데이터를 교환 할 수 있다. 도 2의 신호(ER)는 하나의 신호로 도시되어 있으나, 신호(ER)는 중앙 컨트롤러(110)와 로컬 네트워크(120) 사이에서 디버깅과 관련되는 다양한 데이터를 전달하기 위한 하나 이상의 신호를 포함할 수 있다.
예로서, 중앙 컨트롤러(110)는 도 1의 호스트(10)로부터 네트워크 온 칩(200)의 디버깅에 대한 요청을 수신할 수 있다. 중앙 컨트롤러(110)는 수신되는 요청에 응답하여 네트워크 온 칩(200)을 디버깅 하기 위해 로컬 컨트롤러들(121 내지 123) 중 적어도 하나를 제어하기 위한 신호(ER)를 생성할 수 있다. 중앙 컨트롤러(110)는 생성되는 신호(ER)를 로컬 네트워크(120)로 출력할 수 있다.
로컬 네트워크(120)는 중앙 컨트롤러(110)로부터 수신되는 신호(ER)에 기초하여 디버깅을 수행 할 수 있다. 예로서, 로컬 컨트롤러들(121 내지 123)은 네트워크 인터페이스들을 통해 로컬 컨트롤러들(121 내지 123)과 연결된 IP들을 디버깅할 수 있다. 로컬 네트워크(120)는 네트워크 온 칩(200)의 IP들의 에러와 관련되는 정보를 나타내는 신호(ER)를 중앙 컨트롤러(110)로 출력할 수 있다.
중앙 컨트롤러(110)와 로컬 컨트롤러들(121 내지 123)은 네트워크 온 칩(200)에 대한 디버깅을 위해 서로 통신할 수 있다. 중앙 컨트롤러(110)와 로컬 컨트롤러들(121 내지 123)은 통신을 위해 다양한 토폴로지에 기초한 네트워크를 구성할 수 있다. 도 3을 참조하여, 중앙 컨트롤러(110) 및 로컬 컨트롤러들(121 내지 123) 사이의 통신을 위한 예시적인 토폴로지가 설명될 것이다.
도 3은 도 1의 관리자 네트워크의 예시적인 구성을 보여주는 블록도 이다.
도 3을 참조하면, 중앙 컨트롤러(110) 및 로컬 컨트롤러들(121 내지 123)은 링 구조의 토폴로지를 구성할 수 있다. 중앙 컨트롤러(110) 및 로컬 컨트롤러들(121 내지 123)은 단 방향의 통신을 수행할 수 있다.
도 3은 3개의 로컬 컨트롤러들(121 내지 123)을 포함하는 로컬 네트워크(120)를 도시하나, 로컬 네트워크(120)가 중앙 컨트롤러(110) 함께 링 구조의 토폴로지를 구성하고 단 방향 통신을 수행하는 하나 이상의 로컬 컨트롤러를 포함할 수 있음이 잘 이해될 것이다.
도 3의 예에서, 중앙 컨트롤러(110)는 로컬 컨트롤러(121)로 신호(ER1)를 출력할 수 있다. 로컬 컨트롤러(121)는 신호(ER1)에 기초하여 생성되는 신호(ER2)를 로컬 컨트롤러(122)로 출력할 수 있다. 로컬 컨트롤러(122)는 신호(ER2)에 기초하여 생성되는 신호(ER3)를 로컬 컨트롤러(123)로 출력할 수 있다. 로컬 컨트롤러(123)는 신호(ER3)에 기초하여 생성되는 신호(ER4)를 중앙 컨트롤러(110)로 출력할 수 있다. 도 2의 신호(ER)는 도 3의 신호들(ER1 및 ER4)을 포함할 수 있다.
본 명세서에서 에러 정보라는 용어가 사용된다. 에러 정보는 네트워크 온 칩(200)에 포함되는 IP의 에러와 관련되는 정보를 의미한다. 도 4를 참조하여, 예시적인 에러 정보가 좀 더 구체적으로 설명될 것이다.
로컬 컨트롤러(121)는 신호(ER1)에 대응하는 신호(ER2)를 출력하거나(예컨대, 로컬 컨트롤러(121)를 통해 신호(ER1)가 통과되는 경우) 로컬 컨트롤러(121)와 연결되는 IP의 에러 정보를 나타내는 신호(ER2)를 출력할 수 있다. 로컬 컨트롤러(122)는 신호(ER2)에 대응하는 신호(ER3)를 출력하거나(예컨대, 로컬 컨트롤러(122)를 통해 신호(ER2)가 통과되는 경우) 로컬 컨트롤러(122)와 연결되는 IP의 에러 정보를 나타내는 신호(ER3)를 출력할 수 있다. 로컬 컨트롤러(123)는 신호(ER3)에 대응하는 신호(ER4)를 출력하거나(예컨대, 로컬 컨트롤러(123)를 통해 신호(ER3)가 통과되는 경우) 로컬 컨트롤러(123)와 연결되는 IP의 에러 정보를 나타내는 신호(ER4)를 출력할 수 있다.
예로서, 호스트(10)는 로컬 컨트롤러(121)와 연결되는 IP에 대한 디버깅을 중앙 컨트롤러(110)에 요청할 수 있다. 호스트(10)로부터의 요청에 응답하여 중앙 컨트롤러(110)는 로컬 컨트롤러(121)를 제어하기 위한 신호(ER1)를 출력할 수 있다. 로컬 컨트롤러(121)는 신호(ER1)에 포함된 식별자에 기초하여 호스트(10)로부터의 요청이 로컬 컨트롤러(121)에 연결된 IP에 대한 것인지 여부를 판별할 수 있다. 식별자 및 식별자에 기초한 로컬 컨트롤러(121)의 동작들은 도 4를 참조하여 좀 더 구체적으로 설명될 것이다.
예로서, 로컬 컨트롤러(121)는 호스트(10)로부터의 요청이 로컬 컨트롤러(121)에 연결된 IP에 대한 디버깅을 지시함을 판별할 수 있다. 이 경우, 로컬 컨트롤러(121)는 판별 결과에 따라, 신호(ER1)에 응답하여 로컬 컨트롤러(121)와 연결된 IP를 디버깅할 수 있다. 예로서, 로컬 컨트롤러(121)는 로컬 컨트롤러(121)와 연결된 IP의 에러 정보를 나타내는 신호(ER2)를 출력할 수 있다.
이후, 로컬 컨트롤러(122)는 신호(ER2)를 수신할 수 있다. 로컬 컨트롤러(122)는 신호(ER2)에 기초하여, 호스트(10)로부터의 요청이 로컬 컨트롤러(122)에 연결된 IP에 대한 디버깅과 관련되지 않음을 판별할 수 있다. 로컬 컨트롤러(122)는 판별 결과에 따라 신호(ER2)를 통과시켜 신호(ER3)를 출력할 수 있다.
유사하게, 로컬 컨트롤러(123)는 신호(ER3)에 기초하여, 호스트(10)로부터의 요청이 로컬 컨트롤러(123)에 연결된 IP에 대한 디버깅과 관련되지 않음을 판별할 수 있다. 로컬 컨트롤러(123)는 판별 결과에 따라 신호(ER3)를 통과시켜 신호(ER4)를 출력할 수 있다. 따라서, 중앙 컨트롤러(110)에서 수신되는 신호(ER4)는 로컬 컨트롤러(121)와 연결되는 IP의 에러 정보를 나타낼 수 있다.
중앙 컨트롤러(110)는 신호(ER4)로부터 획득되는 에러 정보를 호스트(10)로 전달할 수 있다. 이후, 호스트(10)는 에러 정보에 기초하여 에러를 복구하기 위해 로컬 컨트롤러들(121 내지 123)에 연결되는 IP들 또는 그 IP들로 신호를 제공하는 다른 전자 회로 등을 제어할 수 있다. 관리자 네트워크(100)는 로컬 컨트롤러(121)에 대응하는 IP를 디버깅하는 방법과 유사한 방법에 따라 로컬 컨트롤러들(122 및 123)에 대응하는 IP들을 디버깅할 수 있는 바, 이하 중복되는 설명은 생략된다.
호스트(10) 및/또는 중앙 컨트롤러(110)의 제어에 따라, 로컬 컨트롤러들(121, 122, 123)에 연결되는 IP들에 대한 디버깅들은 순차적으로 또는 병렬로 수행될 수 있다. 이를 위해, 호스트(10) 및/또는 중앙 컨트롤러(110)는 디버깅들의 순서를 적절히 스케줄링할 수 있고, 디버깅들이 스케줄링된 순서에 따라 수행되도록 로컬 컨트롤러들(121, 122, 123)을 적절히 제어할 수 있다.
도 3을 참조하여 링 구조의 토폴로지 및 단 방향 통신이 설명되었으나, 본 개시는 여기에 한정되지 않는다. 도 3의 구성은 이해를 돕기 위해 제공될 뿐이고, 로컬 네트워크(120)의 토폴로지 및 관리자 네트워크(100)의 통신 방식은 연결 방식에 의존하여 다양하게 변경 또는 수정될 수 있다.
도 4를 참조하여, 로컬 컨트롤러들(121 내지 123)의 예시적인 구성들 및 동작들이 좀 더 구체적으로 설명될 것이다. 도 4 및 도 5를 참조하여, 신호들(ER1 내지 ER4)이 좀 더 구체적으로 설명될 것이다.
도 4는 도 2 및 도 3의 로컬 네트워크에 포함되는 로컬 컨트롤러의 예시적인 구성을 보여주는 블록도 이다.
도 2의 로컬 컨트롤러들(121 내지 123) 각각은 도 4의 로컬 컨트롤러(300)를 포함할 수 있다. 도 4를 참조하면, 로컬 컨트롤러(300)는 수신기(310), 식별자 확인기(Identification checker; ID checker, 320), 에러 검출기(330), 패키지 생성기(340), 멀티플렉서(Multiplexer; MUX, 350), 및 송신기(360)를 포함할 수 있다. 도 4의 예에서, 로컬 컨트롤러(300)에 포함되는 에러 검출기(330)의 실시 예가 설명되나, 에러 검출기(330)는 로컬 컨트롤러(300)의 외부에 배치될 수 있다. 예로서, 에러 검출기(330)는 도 1의 시스템 온 칩(20) 외부의 별도의 전자 회로에 포함될 수 있다.
신호(ER5)는 도 3의 로컬 컨트롤러들(121 내지 123)로 수신되는 신호들(ER1 내지 ER3) 중 하나에 대응할 수 있다. 신호(ER6)는 도 3의 로컬 컨트롤러들(121 내지 123)로부터 출력되는 신호들(ER2 내지 ER4) 중 하나에 대응할 수 있다. 신호(ER5)는 로컬 네트워크(120)에 포함되는 로컬 컨트롤러들 중 하나의 식별자에 대응하는 식별자의 정보를 포함할 수 있다. 예로서, 신호(ER5)의 식별자는 로컬 컨트롤러(300)에 저장된 식별자와 일치할 수 있다.
식별자는 호스트(10)의 요청과 관련될 수 있다. 예로서, 호스트(10)가 로컬 컨트롤러(300)에 연결되는 IP의 에러 정보를 요청할 경우, 중앙 컨트롤러(110)는 그 IP의 에러 정보를 획득하기 위해 로컬 컨트롤러(300)에 저장 또는 할당된 식별자에 대응하는(또는, 로컬 컨트롤러(300)에 저장 또는 할당된 식별자와 일치하는) 식별자를 나타내는 신호(ER5)를 생성할 수 있다.
신호(ER5)는 로컬 컨트롤러들에 연결되는 IP들의 에러 정보를 요청하기 위한 데이터를 포함할 수 있다. 예로서, 신호(ER5)는 로컬 컨트롤러(300)에 연결되는 IP의 에러 정보를 요청하기 위한 데이터를 포함할 수 있다. 신호(ER5)에 포함되는 데이터는 패키지 데이터일 수 있다. 도 6를 참조하여 예시적인 패키지 데이터가 좀 더 구체적으로 설명될 것이다.
수신기(310)는 중앙 컨트롤러(110) 또는 로컬 네트워크(120)에 포함되는 다른 로컬 컨트롤러들 중 하나로부터 신호(ER5)를 수신할 수 있다. 로컬 컨트롤러들에 연결되는 IP들은 상이한 클럭 도메인들에서 각각 동작할 수 있다. 따라서, 로컬 컨트롤러들도 상이한 클럭 도메인들에서 각각 동작할 수 있다.
수신기(310)는 로컬 컨트롤러(300)의 클럭 도메인과 상이한 클럭 도메인에서 동작하는 다른 로컬 컨트롤러 또는 중앙 컨트롤러(110)로부터 신호(ER5)를 수신하기 위해 비동기 방식의 통신을 수행할 수 있다. 예로서, 수신기(310)는 핸드셰이킹(handshaking)에 기반한 통신을 통해 중앙 컨트롤러(110) 또는 다른 로컬 컨트롤러로부터 신호(ER5)를 수신할 수 있다. 수신기(310)는 수신되는 신호(ER5)를 식별자 확인기(320)로 전달할 수 있다.
식별자 확인기(320)는, 신호(ER5)에 포함되는 식별자가 로컬 컨트롤러(300)와 관련되는지 여부를 판별할 수 있다. 예로서, 식별자 확인기(320)는 로컬 컨트롤러(300)의 식별자를 저장할 수 있고, 또는 로컬 컨트롤러(300)에 할당된 식별자를 참조할 수 있다. 식별자 확인기(320)는 수신되는 신호(ER5)에 포함되는 식별자를 저장 또는 할당된 식별자와 비교할 수 있다. 예로서, 식별자 확인기(320)는 XOR 논리 연산 등에 기초하여 신호(ER5)의 식별자와 저장 또는 할당된 식별자를 비교할 수 있다.
식별자 확인기(320)는 비교 결과에 기초하여 신호(ER5)를 에러 검출기(330) 및 MUX(350) 중 하나로 선택적으로 출력할 수 있다. 도 5를 참조하여, 비교 결과에 따른 식별자 확인기(320)의 예시적인 동작들이 좀 더 구체적으로 설명될 것이다.
에러 검출기(330)는 로컬 컨트롤러(300)와 연결되는 IP(이하, 대상 IP)로부터 그 IP에 대한 에러 정보를 획득할 수 있다. 예로서, 사용자는 네트워크 온 칩(200)의 에러를 검출하기 위해 시스템 온 칩(20)을 동작시킬 수 있다. 네트워크 온 칩(200)이 동작을 시작함에 따라, 에러 검출기(330)는 실시간으로 대상 IP의 동작들을 모니터링 할 수 있다. 대상 IP에서 에러가 발생하는 경우, 에러 검출기(330)는 발생한 에러를 검출하고 발생한 에러와 관련되는 에러 정보를 획득 및 저장할 수 있다.
예로서, 에러 정보는 대상 IP에 에러가 발생했는지 여부 및 대상 IP에 발생한 에러의 유형 등과 관련될 수 있다. 예로서, 에러의 유형은 기능적 에러와 전기적 에러 등을 포함할 수 있다. 기능적 에러는, 대상 IP의 동작들에 의한 결과(즉, 대상 IP의 기능)가 설계자의 의도와 상이한 경우 발생하는 에러를 의미한다. 전기적 에러는, 대상 IP 내부에서 생성되는 전기적인 신호들 사이의 간섭 등과 같은 물리적인 문제에 기인하여 발생하는 에러를 의미한다.
패키지 생성기(340)는 에러 검출기(330)에 의해 획득되는 정보를 포함하여 패키지 데이터를 생성할 수 있다. 패키지 생성기(340)는 패키지 데이터를 나타내는 신호(EIP)를 생성할 수 있다.
MUX(350)는 패키지 생성기(340)로부터 수신되는 신호(EIP) 및 식별자 확인기(320)로부터 전달되는 신호(ER5) 중 하나를 선택적으로 송신기(360)로 전달할 수 있다. 도 5를 참조하여, MUX(350)에 의해 신호(EIP) 및 신호(ER5) 중 하나가 선택적으로 전달되는 예시적인 방법이 좀 더 구체적으로 설명될 것이다. 송신기(360)는 MUX(350)로부터 전달되는 신호(EIP) 및 신호(ER5)를 신호(ER6)로서 출력할 수 있다.
송신기(360)는 신호(ER6)를 중앙 컨트롤러(110) 또는 로컬 네트워크(120)에 포함되는 다른 로컬 네트워크들 중 하나로 출력할 수 있다. 송신기(360)는 로컬 컨트롤러(300)의 도메인과 상이한 클럭 도메인에서 동작하는 다른 로컬 컨트롤러 또는 중앙 컨트롤러로 신호(ER6)를 출력하기 위해 비동기 방식의 통신을 수행할 수 있다. 예로서, 송신기(360)는 핸드셰이킹에 기반한 통신을 통해 중앙 컨트롤러(110) 또는 다른 로컬 컨트롤러로 신호(ER6)를 출력할 수 있다. 도 5를 참조하여, 신호들의 전달에 따른 로컬 컨트롤러(300)의 예시적인 동작들이 좀 더 구체적으로 설명될 것이다.
도 5는 도 4의 로컬 컨트롤러의 동작들을 보여주는 순서도 이다. 도 4를 도 5와 함께 참조하여, 도 4의 로컬 컨트롤러(300)의 예시적인 동작이 설명될 것이다.
S110 동작에서, 수신기(310)는 중앙 컨트롤러(110) 또는 다른 로컬 컨트롤러로부터 신호(ER5)를 수신할 수 있다. 수신기(310)는 신호(ER5)를 식별자 확인기(320)로 출력할 수 있다.
S120 동작에서, 식별자 확인기(320)는 수신기(310)로부터 신호(ER5)를 수신할 수 있다. 식별자 확인기(320)는, 신호(ER5)에 포함되는 식별자가 로컬 컨트롤러(300)의 식별자(즉, 식별자 확인기(320)에 저장된 식별자)와 일치하는지 여부를 판별할 수 있다. 신호(ER5)에 포함되는 식별자가 로컬 컨트롤러(300)의 식별자와 일치하는 것으로 판별되는 경우, S140 동작이 수행될 수 있다. 신호(ER5)에 포함되는 식별자가 로컬 컨트롤러(300)의 식별자와 일치하지 않는 것으로 판별되는 경우, S130 동작이 수행될 수 있다.
도 4를 참조하여 설명된 바와 같이, 식별자는 호스트(10)로부터의 요청과 관련될 수 있다. 따라서, 식별자 확인기(320)는 신호(ER5)의 식별자를 저장된 식별자와 비교함으로써 호스트(10)로부터의 요청이 로컬 컨트롤러(300)에 연결되는 IP의 에러 정보와 관련되는지 여부를 판별할 수 있다.
S130 동작에서, 식별자 확인기(320)는 신호(ER5)를 MUX(350)로 출력할 수 있다. MUX(350)는 신호(ER5)를 송신기(360)로 전달할 수 있다. 송신기(360)는 MUX(350)로부터 전달되는 신호(ER5)를 신호(ER6)로서 출력할 수 있다. 송신기(360)에 의해 신호(ER5)가 신호(ER6)로서 출력됨에 따라, 로컬 컨트롤러(300)는 신호(ER5)를 통과시킬 수 있다. 즉, 신호(ER5)의 식별자가 식별자 확인기(320)에 저장된 식별자와 일치하지 않는 경우, 로컬 컨트롤러(300)는 S110 동작 내지 S130 동작에 의해 신호(ER5)를 통과시켜 신호(ER6)를 출력할 수 있다. 이 경우, 예로서, 신호(ER6)는 다른 로컬 컨트롤러에 대응하는 식별자의 정보를 포함할 수 있다.
S140 동작에서, 식별자 확인기(320)는 신호(ER5)를 에러 검출기(330)로 출력할 수 있다.
S150 동작에서, 에러 검출기(330)는 식별자 확인기(320)로부터 신호(ER5)를 수신할 수 있다. 에러 검출기(330)는 신호(ER5)에 응답하여 호스트(10)에 의해 요청되는 에러 정보를 패키지 생성기(340)로 제공할 수 있다. 예로서, 에러 검출기(330)는 실시간으로 획득되는 에러 정보를 저장할 수 있고, 신호(ER5)의 데이터에 응답하여 에러 정보를 포함하는 신호(EI)를 생성할 수 있다. 에러 검출기(330)는 생성되는 신호(EI)를 패키지 생성기(340)로 출력할 수 있다.
S160 동작에서, 패키지 생성기(340)는 신호(EI)에 기초하여 에러 정보를 포함하는 패키지 데이터를 생성할 수 있다. 패키지 생성기(340)는 생성되는 패키지 데이터를 포함하는 신호(EIP)를 생성할 수 있다. 패키지 생성기(340)는 생성되는 신호(EIP)를 MUX(350)로 출력할 수 있다.
S170 동작에서, MUX(350)는 신호(EIP)를 송신기(360)로 전달할 수 있다. 송신기(360)는 신호(EIP)를 중앙 컨트롤러(110) 또는 다른 로컬 컨트롤러로 출력할 수 있다. 송신기(360)에 의해 신호(EIP)가 신호(ER6)로서 출력됨에 따라, 로컬 컨트롤러(300)는 에러 정보를 나타내는 신호(ER6)를 출력할 수 있다. 즉, 신호(ER5)의 식별자가 식별자 확인기(320)에 저장된 식별자와 일치하는 경우, 로컬 컨트롤러(300)는 S110 동작, S120 동작, 및 S140 동작 내지 S180 동작에 의해 로컬 컨트롤러(300)에 대응하는 IP의 에러 정보를 나타내는 신호(ER6)를 출력할 수 있다.
도 6은 도 4의 신호들에 의해 나타나는 예시적인 패키지 데이터를 보여주는 개념도 이다.
도 6을 참조하면, 신호(ER5)에 포함되는 패키지 데이터는 식별자를 나타내는 데이터 “ID” 및 IP의 에러 정보를 요청하기 위한 데이터 “opcode”및 데이터 “wdata”를 포함할 수 있다. 예로서, 데이터 “opcode”는 IP에서 에러가 발생했는지 여부를 요청하는 것과 관련되고, 데이터 “wdata”는 IP에서 발생하는 에러의 유형을 요청하는 것과 관련될 수 있다. 식별자 확인기(320)는 신호(ER5)의 데이터 “ID”를 식별자 확인기(320)에 저장된 식별자와 비교할 수 있다.
에러 검출기(330)는 신호(ER5)의 데이터 “opcode”및 “wdata”에 응답하여 로컬 컨트롤러(300)와 연결되는 IP의 에러 정보를 제공할 수 있다. 예로서, 에러 검출기(330)는 데이터 “opcode”에 응답하여, IP에 에러가 발생했는지 여부와 관련되는 에러 정보를 제공할 수 있다. 에러 검출기(330)는 데이터 “wdata”에 응답하여 IP에서 발생하는 에러의 유형과 관련되는 에러 정보를 제공할 수 있다.
신호(EIP)에 의해 나타나는 예시적인 패키지 데이터는 식별자를 나타내는 데이터 “ID”및 에러 정보를 나타내는 데이터 “rdata/wrep”를 포함할 수 있다. 패키지 생성기(340)는 신호(EI)에 기초하여 에러 정보를 나타내는 데이터 “rdata/wrep”를 생성할 수 있다.
도 7은 본 발명의 실시 예에 따른 시스템 온 칩의 구성을 보여주는 블록도 이다.
도 7을 참조하면, 시스템 온 칩(1000)은 중앙 컨트롤러(1100), 로컬 컨트롤러들(1210 내지 1260), 및 네트워크 온 칩(1300)을 포함할 수 있다. 네트워크 온 칩(1300)은 IP들(1310 내지 1360)을 포함할 수 있다. IP들(1310 내지 1360)은 네트워크 인터페이스들(1311 내지 1361)을 각각 포함할 수 있다.
도 1의 시스템 온 칩(20)은 도 7의 시스템 온 칩(1000)을 포함할 수 있다. 도 1의 관리자 네트워크(100)는 중앙 컨트롤러(1100) 및 로컬 컨트롤러들(1210 내지 1260)을 포함할 수 있다. 도 7의 중앙 컨트롤러(1100)의 구성 및 동작들은 도 2의 중앙 컨트롤러(110)의 구성 및 동작들과 유사하므로 이하 설명은 생략된다. 도 7의 중앙 컨트롤러(1100)의 구성 및 동작들은 도 2의 로컬 컨트롤러들(121 내지 123)의 구성들 및 동작들과 유사하므로 이하 설명은 생략된다.
도 3을 참조하여 설명된 바와 같이, 중앙 컨트롤러(1100) 및 로컬 컨트롤러들(1210 내지 1260)은 관리자 네트워크를 형성할 수 있다. 예로서, 중앙 컨트롤러(1100) 및 로컬 컨트롤러들(1210 내지 1260)은 링 구조의 토폴로지를 형성할 수 있다. 중앙 컨트롤러(1100) 및 로컬 컨트롤러들(1210 내지 1260)은 순차적으로 그리고 단 방향으로 신호들을 전달할 수 있다.
중앙 컨트롤러(1100)로부터 출력되는 신호는 로컬 컨트롤러들(1210 내지 1260)에 연결되는 IP들(1310 내지 1360) 중 하나를 디버깅하기 위한 패키지 데이터를 포함할 수 있다. 시스템 온 칩(1000)이 사용자에 의해 동작함에 따라, 로컬 컨트롤러들(1210 내지 1260) 내부 또는 외부의 에러 검출기들은 IP들(1310 내지 1360)의 동작들을 모니터링 할 수 있다. IP들(1310 내지 1360) 중 적어도 하나에서 에러가 발생하는 경우, 에러 검출기들은 발생한 에러와 관련되는 에러 정보를 획득 및 저장할 수 있다. 에러 검출기들은 중앙 컨트롤러(1100)로부터 출력되는 신호에 포함된 패키지 데이터에 응답하여 에러 정보를 제공할 수 있다. 에러 정보는 로컬 컨트롤러들(1210 내지 1260) 중 적어도 하나를 통해 중앙 컨트롤러로 전달될 수 있다.
예로서, 중앙 컨트롤러(1100)로부터 출력되는 신호에 응답하여 로컬 컨트롤러들(1210 내지 1260)이 순차적으로 신호를 출력하고, 로컬 컨트롤러(1260)로부터 출력되는 신호가 중앙 컨트롤러(1100)에서 수신될 수 있다. 로컬 컨트롤러(1260)로부터 중앙 컨트롤러(1100)로 출력되는 신호는 IP들(1310 내지 1360) 중 하나의 에러 정보를 나타낼 수 있다. 예로서, 로컬 컨트롤러(1260)로부터 중앙 컨트롤러(1100)로 출력되는 신호는 IP들(1310 내지 1360) 중 하나의 에러 정보를 표시하는 패키지 데이터를 포함할 수 있다.
로컬 컨트롤러들(1210 내지 1260)은 네트워크 인터페이스들(1311 내지 1361)을 통해 IP들(1310 내지 1360)과 각각 통신할 수 있다. 예로서, 네트워크 인터페이스들(1311 내지 1361)은 AXI(Advanced Extensible Interface), AHB(Advanced High-performance Bus), APB(Advanced Peripheral Bus), 및 OCP(Open Core Protocol) 등과 같은 프로토콜들 중 적어도 하나에 따라 로컬 컨트롤러들(1210 내지 1260)과 IP들(1310 내지 1360) 사이에서 교환되는 신호들을 처리할 수 있다.
시스템 온 칩(1000)은 네트워크 온 칩(1300)을 디버깅하도록 구성되는 중앙 컨트롤러(1100) 및 로컬 컨트롤러들(1210 내지 1260)을 포함하기 때문에, 시스템 온 칩(1000)의 설계자는 추가적인 로직 없이 네트워크 온 칩(1300)의 설계에 대한 에러를 디버깅 할 수 있다. 즉, 시스템 온 칩(1000)의 설계자는 추가적인 하드웨어나 소프트웨어(예컨대, 로직 분석기 등) 및 시뮬레이션(예컨대, RTL(Register Transfer Level) 시뮬레이션, 게이트 레벨 시뮬레이션, 및 백-어노테이트 타이밍 시뮬레이션 등)의 수행 없이 네트워크 온 칩(1300)을 용이하게 디버깅할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 호스트
20: 시스템 온 칩
100: 관리자 네트워크
200: 네트워크 온 칩
1000: 시스템 온 칩
1300: 네트워크 온 칩

Claims (15)

  1. 호스트로부터의 요청에 응답하여, 대상 IP(Intellectual property)의 설계로부터 발생하는 에러와 관련되는 에러 정보를 요청하기 위한 제 1 신호를 생성하도록 구성되는 중앙 컨트롤러; 및
    상기 제 1 신호에 기초하여 상기 호스트로부터의 상기 요청이 상기 대상 IP에 대한 것으로 판별되는 경우, 상기 대상 IP의 상기 에러 정보를 포함하는 제 2 신호를 생성하도록 구성되는 로컬 컨트롤러를 포함하되,
    상기 중앙 컨트롤러는 상기 제 2 신호에 기초하여 상기 대상 IP의 상기 에러 정보를 상기 호스트로 전달하도록 더 구성되는 시스템 온 칩.
  2. 제 1 항에 있어서,
    상기 대상 IP를 포함하는 네트워크 온 칩을 더 포함하고,
    상기 로컬 컨트롤러는 상기 네트워크 온 칩의 상기 대상 IP와 통신하도록 연결되는 시스템 온 칩.
  3. 제 2 항에 있어서,
    상기 네트워크 온 칩은 상기 대상 IP와 상기 로컬 컨트롤러 사이의 통신을 위한 네트워크 인터페이스를 더 포함하되,
    상기 로컬 컨트롤러는 상기 네트워크 인터페이스를 통해 상기 대상 IP로부터 상기 대상 IP의 상기 에러 정보를 획득하도록 더 구성되는 시스템 온 칩.
  4. 제 1 항에 있어서,
    상기 제 1 신호는 식별자의 정보를 포함하고,
    상기 로컬 컨트롤러는, 상기 제 1 신호의 상기 식별자 및 상기 로컬 컨트롤러에 저장 또는 할당된 식별자에 기초하여 상기 호스트로부터의 상기 요청이 상기 대상 IP에 대한 것인지 여부를 판별하도록 구성되는 시스템 온 칩.
  5. 제 4 항에 있어서,
    상기 로컬 컨트롤러는, 상기 제 1 신호의 상기 식별자가 상기 저장 또는 할당된 식별자와 일치하는 경우 상기 대상 IP로부터 획득된 상기 대상 IP의 상기 에러 정보를 제공받도록 구성되는 시스템 온 칩.
  6. 제 1 항에 있어서,
    상기 에러 정보는, 상기 대상 IP에서 상기 에러가 발생했는지 여부와 관련되는 시스템 온 칩.
  7. 제 1 항에 있어서,
    상기 에러 정보는 상기 대상 IP의 상기 설계로부터 발생하는 상기 에러의 유형과 관련되는 시스템 온 칩.
  8. 대상 IP의 설계로부터 발생하는 에러와 관련되는 에러 정보를 요청하기 위한 제 1 신호를 생성하도록 구성되는 중앙 컨트롤러; 및
    상기 대상 IP를 포함하는 IP들로부터 획득되는 에러 정보를 전달하도록 구성되는 로컬 컨트롤러들을 포함하되,
    상기 로컬 컨트롤러들 중 상기 대상 IP에 대응하는 대상 로컬 컨트롤러는 상기 제 1 신호에 기초하여 상기 에러 정보를 포함하는 제 2 신호를 생성하고,
    상기 중앙 컨트롤러는, 링 구조의 토폴로지로 구성된 상기 중앙 컨트롤러 및 상기 로컬 컨트롤러들 사이의 통신을 통해, 상기 제 2 신호에 기초하여 상기 에러 정보를 획득하도록 더 구성되는 시스템 온 칩.
  9. 제 8 항에 있어서,
    상기 중앙 컨트롤러 및 상기 로컬 컨트롤러들은 상기 링 구조의 상기 토폴로지에 기반하여 단 방향의 통신을 통해 상기 제 1 신호 및 상기 제 2 신호를 전달하도록 더 구성되는 시스템 온 칩.
  10. 제 8 항에 있어서,
    상기 로컬 컨트롤러들 중 제 1 로컬 컨트롤러는 상기 중앙 컨트롤러로부터 상기 제 1 신호를 직접 수신하거나 또는 상기 제 1 신호를 상기 로컬 컨트롤러들 중 다른 하나 이상의 로컬 컨트롤러를 통해 수신하는 시스템 온 칩.
  11. 제 10 항에 있어서,
    상기 제 1 로컬 컨트롤러가 상기 대상 로컬 컨트롤러인 경우, 상기 제 1 로컬 컨트롤러는 상기 제 1 로컬 컨트롤러에 연결되는 제 2 로컬 컨트롤러로 상기 제 2 신호를 출력하고,
    상기 제 1 로컬 컨트롤러가 상기 대상 로컬 컨트롤러가 아닌 경우, 상기 제 1 로컬 컨트롤러는 상기 수신된 제 1 신호를 상기 제 2 로컬 컨트롤러로 출력하기 위해 상기 수신된 제 1 신호를 통과시키는 시스템 온 칩.
  12. 제 8 항에 있어서,
    상기 로컬 컨트롤러들 중 제 3 로컬 컨트롤러는 상기 중앙 컨트롤러로 상기 제 2 신호를 직접 전송하거나 또는 상기 제 2 신호를 상기 로컬 컨트롤러들 중 다른 하나 이상의 로컬 컨트롤러를 통해 전송하는 시스템 온 칩.
  13. 제 12 항에 있어서,
    상기 제 3 로컬 컨트롤러가 상기 대상 로컬 컨트롤러인 경우, 상기 제 3 로컬 컨트롤러는 상기 제 3 로컬 컨트롤러에 연결되는 제 4 로컬 컨트롤러를 통해 상기 제 1 신호를 수신하고,
    상기 제 3 로컬 컨트롤러가 상기 대상 로컬 컨트롤러가 아닌 경우, 상기 제 3 로컬 컨트롤러는 상기 제 4 로컬 컨트롤러를 통해 상기 대상 로컬 컨트롤러에 의해 생성된 상기 제 2 신호를 수신하는 시스템 온 칩.
  14. 제 8 항에 있어서,
    상기 대상 IP로부터 획득되는 상기 에러 정보를 상기 대상 로컬 컨트롤러로 제공하도록 구성되는 검출기를 더 포함하는 시스템 온 칩.
  15. 제 8 항에 있어서,
    상기 중앙 컨트롤러는 호스트와 통신하고, 상기 호스트로부터의 요청에 응답하여 상기 제 1 신호를 생성하고, 상기 제 2 신호에 기초하여 상기 호스트로부터의 상기 요청에 대응하는 상기 에러 정보를 상기 호스트로 제공하도록 더 구성되는 시스템 온 칩.
KR1020180109862A 2018-09-13 2018-09-13 디버깅을 위한 네트워크를 포함하는 시스템 온 칩 KR102376750B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180109862A KR102376750B1 (ko) 2018-09-13 2018-09-13 디버깅을 위한 네트워크를 포함하는 시스템 온 칩
US16/556,905 US11470018B2 (en) 2018-09-13 2019-08-30 System-on-chip including network for debugging

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180109862A KR102376750B1 (ko) 2018-09-13 2018-09-13 디버깅을 위한 네트워크를 포함하는 시스템 온 칩

Publications (2)

Publication Number Publication Date
KR20200030979A KR20200030979A (ko) 2020-03-23
KR102376750B1 true KR102376750B1 (ko) 2022-03-21

Family

ID=69773194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180109862A KR102376750B1 (ko) 2018-09-13 2018-09-13 디버깅을 위한 네트워크를 포함하는 시스템 온 칩

Country Status (2)

Country Link
US (1) US11470018B2 (ko)
KR (1) KR102376750B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100687659B1 (ko) 2005-12-22 2007-02-27 삼성전자주식회사 Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US7941781B1 (en) 2006-03-15 2011-05-10 Marvell International Technology Ltd. On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits
US20140126572A1 (en) 2012-11-02 2014-05-08 Altera Corporation Programmable logic device with integrated network-on-chip

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100626663B1 (ko) 2004-12-14 2006-09-25 한국전자통신연구원 인터넷 전화용 시스템온칩 개발 및 검증 장치
KR100686182B1 (ko) 2006-01-27 2007-02-26 엘지전자 주식회사 네트워크 온 칩 내 ip 코아 스캔 테스트 제어 장치
US8095834B2 (en) * 2008-10-30 2012-01-10 Micron Technology, Inc. Macro and command execution from memory array
CA3052820C (en) * 2009-01-15 2024-03-19 Electronic Warfare Associates, Inc. Systems and methods of implementing remote boundary scan features
US8793095B2 (en) * 2011-03-09 2014-07-29 Intel Corporation Functional fabric-based test controller for functional and structural test and debug
GB2495543A (en) * 2011-10-14 2013-04-17 St Microelectronics Res & Dev An arrangement for routing requests
KR20130101927A (ko) 2012-03-06 2013-09-16 한국전자통신연구원 디버깅 기능을 가지는 멀티코어 SoC
US9632895B2 (en) 2012-06-18 2017-04-25 Intel Corporation Apparatus, system and method for a common unified debug architecture for integrated circuits and SoCs
US9471726B2 (en) * 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9329946B2 (en) * 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
US9684578B2 (en) 2014-10-30 2017-06-20 Qualcomm Incorporated Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems
US10037301B2 (en) * 2015-03-04 2018-07-31 Xilinx, Inc. Circuits and methods for inter-processor communication
US10789153B2 (en) * 2018-04-03 2020-09-29 Xilinx, Inc. Debug controller circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100687659B1 (ko) 2005-12-22 2007-02-27 삼성전자주식회사 Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US7941781B1 (en) 2006-03-15 2011-05-10 Marvell International Technology Ltd. On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits
US20140126572A1 (en) 2012-11-02 2014-05-08 Altera Corporation Programmable logic device with integrated network-on-chip

Also Published As

Publication number Publication date
KR20200030979A (ko) 2020-03-23
US20200092226A1 (en) 2020-03-19
US11470018B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
TWI596544B (zh) 內含目錄狀態之更新技術
KR101696124B1 (ko) 고성능 인터커넥트 물리 계층
JP7420484B2 (ja) 第1のクロックドメインと第2のクロックドメインとの間で伝送される主信号のためのエラーチェック
US9255968B2 (en) Integrated circuit with a high-speed debug access port
US11176297B2 (en) Detection and isolation of faults to prevent propagation of faults in a resilient system
US8239708B2 (en) System on chip (SoC) device verification system using memory interface
US7043596B2 (en) Method and apparatus for simulation processor
US7568138B2 (en) Method to prevent firmware defects from disturbing logic clocks to improve system reliability
JP2018535580A (ja) テストカバレッジを増大するためのポイントツーポイント相互接続についての自己エラーインジェクション技法
US9170911B1 (en) Protocol error monitoring on an interface between hard logic and soft logic
US9954534B2 (en) Methods and circuits for preventing hold time violations
KR102376750B1 (ko) 디버깅을 위한 네트워크를 포함하는 시스템 온 칩
El-Ashry et al. On error injection for NoC platforms: A UVM-based practical case study
US10452499B2 (en) Redundancy for cache coherence systems
US20230019372A1 (en) Scheme for Transferring and Authenticating Data
Neishaburi et al. A distributed AXI-based platform for post-silicon validation
Han et al. A diagnosable network-on-chip for FPGA verification of intellectual properties
Göhringer et al. Reliable and adaptive network-on-chip architectures for cyber physical systems
Kan et al. A case Study: pre-Silicon SoC RAS validation for NoC server processor
Rakshe et al. Router RTL design for network on chip (NoC) with common resource sharing scenario by arbitration technique
Janac Network‐on‐Chip (NoC): The Technology that Enabled Multi‐processor Systems‐on‐Chip (MPSoCs)
Ranga et al. Design and implementation of AMBA-AXI protocol using VHDL for SoC Integration
Pang et al. A Lightweight Slave-Module Interface Core to Implement IEEE 1149.5 MTM-Bus Based on FPGA
SINGH POST SILICON FUNCTIONAL VALIDATION: PCLE
Soni Pre-Silicon Validation of PCI Express

Legal Events

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