KR20140113175A - 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법 - Google Patents

버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법 Download PDF

Info

Publication number
KR20140113175A
KR20140113175A KR1020130028242A KR20130028242A KR20140113175A KR 20140113175 A KR20140113175 A KR 20140113175A KR 1020130028242 A KR1020130028242 A KR 1020130028242A KR 20130028242 A KR20130028242 A KR 20130028242A KR 20140113175 A KR20140113175 A KR 20140113175A
Authority
KR
South Korea
Prior art keywords
bus
inspection
signal
error
information
Prior art date
Application number
KR1020130028242A
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 KR1020130028242A priority Critical patent/KR20140113175A/ko
Priority to US14/199,088 priority patent/US9442788B2/en
Publication of KR20140113175A publication Critical patent/KR20140113175A/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
    • 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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error 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 the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법이 개시된다. 본 발명의 일실시예에 따른 시스템 온 칩은, 시스템 버스와, 상기 시스템 버스를 통해 버스 신호를 출력하는 복수의 아이피(IP)들 및 상기 복수의 아이피들 중 적어도 일부에 대응하여 배치되는 하나 이상의 검사기를 구비하고, 상기 검사기는, 버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 제1 환경설정 레지스터 및 상기 버스 신호를 수신하고, 상기 제1 환경설정 레지스터에 설정된 정보에 따라 상기 버스 신호에 포함된 신호들 중 적어도 일부에 대한 버스 프로토콜 검사를 수행하는 검사 로직을 구비하는 것을 한다.

Description

버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법{Bus Protocol Checker, System on Chip having the same and Method for checking bus protocol}
본 발명은 시스템 온 칩에 관한 것으로서, 구체적으로는 버스 프로토콜 검사를 수행하는 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법 에 관한 것이다.
시스템 온 칩(System on Chip, SoC)의 크기가 증가함에 따라, 다양한 버스 프로토콜을 사용하는 IP(Intellectual Property)들이 하나의 반도체 칩에 집적된다. 다수의 IP들이 집적되는 SoC를 새로이 설계하는 것은 비실용적일 뿐 아니라 개발 시간도 많이 소요되므로, IP를 재사용하여 SoC를 구현하는 방안이 제안되고 있으며 이에 따라 TTM(Time to Market)이 확보될 수 있다.
IP를 SoC 설계에 사용하기 위해서는 IP 사이의 데이터 전송을 위한 인터페이스 설계와 버스 프로토콜에 대한 검증 작업이 필요하다. 그러나, 버스 프로토콜 검사에 있어서 한정된 하드웨어 자원 하에서 검사 항목과 대상이 제한되는 등 검사에 제약이 발생하게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 버스 프로토콜의 검사의 효율성을 향상할 수 있는 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 시스템 온 칩은, 시스템 버스와, 상기 시스템 버스를 통해 버스 신호를 출력하는 복수의 아이피(IP)들 및 상기 복수의 아이피들 중 적어도 일부에 대응하여 배치되는 하나 이상의 검사기를 구비하고, 상기 검사기는, 버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 제1 환경설정 레지스터 및 상기 버스 신호를 수신하고, 상기 제1 환경설정 레지스터에 설정된 정보에 따라 상기 버스 신호에 포함된 신호들 중 적어도 일부에 대한 버스 프로토콜 검사를 수행하는 검사 로직을 구비하는 것을 한다.
바람직하게는, 상기 검사기는, 상기 검사 로직으로부터의 버스 프로토콜 검사 결과에 응답하여, 에러 발생된 검사 대상 및 항목에 관련된 정보를 포함하는 에러 정보를 출력하는 에러 정보 출력 로직을 더 구비하는 것을 특징으로 한다.
또한 바람직하게는, 상기 검사 로직은, 각각 서로 다른 검사 항목에 대한 버스 프로토콜 검사를 수행하는 다수의 서브 검사 로직들을 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 서브 검사 로직들 각각은, 상기 제1 환경설정 레지스터에 설정된 정보의 변경에 따라 버스 프로토콜 검사를 수행할 검사 항목을 변경하는 것을 특징으로 한다.
또한 바람직하게는, 상기 서브 검사 로직들 각각은, 상기 버스 신호로부터 해당하는 검사 항목에 대한 검사 신호들을 생성하는 검사 신호 생성기 및 상기 검사 신호들을 이용하여 해당 검사 항목에 대한 버스 프로토콜 검사를 수행하여 검사 결과를 출력하는 검사부를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 서브 검사 로직들 각각은 서로 다른 검사 항목에 대하여 동일한 종류의 검사 신호들을 생성하는 것을 특징으로 한다.
또한 바람직하게는, 상기 검사 신호 생성기는, 상기 버스 신호에 포함된 신호들 중 해당 검사 항목에 대응하는 신호로부터 검사 시작 신호, 검사 종료 신호, 동작 신호 및 에러 신호를 상기 검사 신호로서 생성하는 것을 특징으로 한다.
또한 바람직하게는, 상기 시스템 버스는 AXI 프로토콜을 갖는 버스 신호를 전달하는 것을 특징으로 한다.
또한 바람직하게는, 상기 검사기는 버스 프로토콜 에러를 보상하는 에러 보상기를 더 포함하고, 상기 에러 보상기는, 버스 프로토콜 에러를 보상할 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 제2 환경설정 레지스터 및 상기 제2 환경설정 레지스터 설정된 정보에 따라 버스 프로토콜 에러 보상을 수행하고, 에러 보상된 버스 신호를 상기 시스템 버스로 출력하는 보상부를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 보상부는, 억세스 요청된 아이피로부터의 버스 신호를 아이피 버스를 통해 수신하고, 상기 버스 신호에 대한 버스 프로토콜 검사 결과에 따라 버스 프로토콜 에러 보상을 수행하는 것을 특징으로 한다.
또한 바람직하게는, 상기 보상부는, 상기 시스템 버스를 통해 억세스 요청 신호를 수신하며, 상기 억세스 요청 신호에 응답하여 가상 응답 신호를 생성하고, 상기 가상 응답 신호를 상기 에러 보상된 버스 신호로서 상기 시스템 버스로 출력하는 것을 특징으로 한다.
또한 바람직하게는, 상기 보상부는, 서로 다른 채널을 통해 전송되는 신호들에 대한 에러 보상을 수행하기 위한 다수의 에러 보상 로직들을 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 보상부는, 상기 제2 환경설정 레지스터에 설정된 정보에 따라, 에러 보상된 버스 신호 및 에러가 보상되지 않은 버스 신호를 선택적으로 출력하는 경로 선택부를 더 포함하는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 버스 프로토콜 검사기는, 시스템 온 칩 내의 시스템 버스와 아이피(IP) 사이에 연결되는 검사 로직과, 버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 환경설정 레지스터 및 상기 검사 로직으로부터의 버스 프로토콜 검사 결과에 따른 에러 정보를 출력하는 에러 정보 출력 로직을 구비하고, 상기 검사 로직은, 다수의 검사 항목들 중 상기 환경설정 레지스터에 설정된 정보에 따른 검사 항목들에 대한 버스 프로토콜 검사를 수행하기 위한 다수의 서브 검사 로직들을 포함하는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 시스템 온 칩의 버스 프로토콜 검사 방법은, 버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보를 환경설정 레지스터에 저장하는 단계와, 억세스 요청된 아이피(IP)로부터의 버스 신호를 검사기에서 수신하는 단계와, 상기 수신된 버스 신호에 대해, 상기 환경설정 레지스터에 저장된 정보에 따라 선택된 하나 이상의 검사 항목에 대하여 버스 프로토콜 검사를 수행하는 단계와, 검사 결과에 대응하는 에러 정보를 상기 시스템 온 칩의 시스템 버스를 통해 출력하는 단계를 구비하고, 상기 환경설정 레지스터에 저장된 정보가 변경됨에 따라 상기 버스 프로토콜 검사를 수행할 검사 항목이 변경되는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 시스템 온 칩은, 시스템 버스와, 상기 시스템 버스를 통해 버스 신호를 출력하는 복수의 아이피(IP)들과, 상기 복수의 아이피들 중 적어도 일부에 대응하여 배치되며, 환경설정 정보에 따라 검사 대상 및 검사 항목을 변경하고, 버스 프로토콜 검사 결과에 기반하여 에러 정보를 출력하는 버스 프로토콜 검사기 및 상기 에러 정보에 응답하여 에러 보상된 버스 신호를 생성하고, 상기 에러 보상된 버스 신호를 상기 시스템 버스로 출력하는 에러 보상기를 구비하는 것을 특징으로 한다.
상기와 같은 본 발명의 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법에 따르면, 합성 가능한 버스 프로토콜 검사를 수행함과 함께 검사 대상 및 항목의 설정이 가능하므로, RTL 레벨 뿐 아니라 게이트 레벨에서도 다양한 종류의 검사 항목에 대한 효율적인 버스 프로토콜 검사를 할 수 있는 효과가 있다.
또한, 본 발명의 실시예에 따르면, 버스 프로토콜 에러가 발생된 버스 신호에 대한 보상 및 은닉화를 수행할 수 있으므로, 어느 하나의 IP의 버스 프로토콜 에러 발생에 의하여 전체 시스템 동작 정지 및 검사 불가능 상태가 발생되는 문제를 방지할 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 시스템 온 칩의 일 구현예를 나타내는 블록도이다.
도 2a,b는 도 1의 검사기의 일 구현예를 나타내는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 SoC의 구현예를 나타내는 블록도이다.
도 4는 도 1의 검사기의 일 구현예를 나타내는 블록도이다.
도 5는 검사 로직의 일 구현예를 나타내는 블록도이다.
도 6은 도 5의 서브 검사 로직의 일 구현예를 나타내는 블록도이다.
도 7은 도 6의 서브 검사 로직의 구체적인 구현 예를 나타내는 블록도이다.
도 8은 본 발명의 실시예에 따른 검사기의 에러 대상 및 에러 항목의 일예를 나타내는 표이다.
도 9는 본 발명의 일 실시예에 따른 SoC의 버스 프로토콜 검사 방법의 일예를 나타내는 플로우차트이다.
도 10은 도 9의 버스 프로토콜 검사 수행 단계를 구체화한 일 예를 나타내는 플로우차트이다.
도 11은 도 1의 검사기의 다른 구현예를 나타내는 블록도이다.
도 12는 도 11의 에러 보상기의 보상부의 일 구현예를 나타내는 블록도이다.
도 13은 도 11의 에러 보상기의 다른 구현 예를 나타내는 도면이다.
도 14a,b는 에러 보상 정책에 따른 신호 전달 과정의 일예를 나타내는 도면이다.
도 15 및 도 16은 본 발명의 실시예에 따른 에러 보상 동작의 일예를 나타내는 플로우차트이다.
도 17a,b은 본 발명의 시스템 온 칩이 적용된 디바이스의 일 예를 나타내는 블록도이다.
도 18a,b는 본 발명의 또 다른 실시예에 따른 버스 프로토콜 에러 보상기를 나타내는 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 시스템 온 칩(System on Chip, 이하 SoC로 지칭함)의 일 구현예를 나타내는 블록도이다. SoC는 여러 기능을 갖는 시스템을 하나의 반도체 칩에 집적하여 구현되며, 다수의 IP(Intellectual Property)들이 SoC에 집적될 수 있다. 다수의 IP들 각각은 SoC 내에 구현되어 각각의 특정 기능을 수행한다.
도 1에 도시된 바와 같이, SoC(1000)는 시스템 버스(1100)를 포함하며, 또한 시스템 버스(1100)에 연결된 IP들을 포함한다. IP들의 일예로서, 중앙 처리장치(CPU, 1210), 마스터 IP들(1220, 1230), 슬레이브 IP들(1310, 1320, 1330)이 SoC(1000)에 구비될 수 있다. 또한, 본 발명의 실시예에 따라 IP들 사이에서 송수신하는 버스 신호의 프로토콜을 검사하는 버스 프로토콜 검사기(1400, 이하 검사기로 지칭함)가 SoC(1000)에 더 포함될 수 있다. 검사기(1400)는 SoC(1000)에 포함되는 IP들 각각에 대응하여 배치될 수 있으며, 예컨대 SoC(1000)에 포함되는 적어도 일부의 IP들에 대응하여 검사기(1400)가 각각 배치될 수 있다. 또한, 다른 일부의 IP들에 대해서는 검사기(1400)가 배치되지 않을 수도 있다.
시스템 버스(1100)는 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 버스로 구현될 수 있다. 예컨대, 표준 버스 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 전술한 버스 타입들 중 AXI는 IP들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 제공한다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 시스템 버스(1100)에 적용되어도 무방하다.
한편, 도 1에 도시된 각종 IP들 각각은 고유한 동작을 수행하는 기능 블록으로 구현될 수 있으며, 시스템 버스(1100)를 사용할 수 있는 권한를 가졌는지의 여부에 따라 마스터 IP(1220, 1230)와 슬레이브 IP(1310, 1320, 1330)로 구분될 수 있다. 도 1에 도시된 중앙 처리장치(1210) 또한 마스터 IP에 해당할 수 있다. 이외에도, 마스터 IP(1220, 1230)로서 메모리 컨트롤러, 마이크로 프로세서, 디지털 신호 프로세서(DSP) 및 MPEG(Moving Picture Expert Group)이 적용될 수 있다. 한편, 슬레이브 IP들(1310, 1320, 1330)은 마스터 IP(1220, 1230)에 의해 제어되는 IP로서, 입출력 장치, 메모리 등이 슬레이브 IP로 구현될 수 있다.
검사기(1400)는 IP들 사이에서 송수신되는 버스 신호를 수신하고 이에 대한 버스 프로토콜 검사를 수행한다. 예컨대, 어느 하나의 슬레이브 IP(예컨대, 제1 슬레이브 IP, 1310)에 대한 데이터 억세스 요청이 이루어지면, 제1 슬레이브 IP(1310)로부터의 버스 신호가 이에 대응하는 검사기(1400)로 제공되며, 검사기(1400)는 버스 신호를 수신하고 이에 대한 버스 프로토콜 검사 동작을 수행하며, 그 검사(Check) 결과에 따른 에러 정보를 출력한다. 또한, 검사기(1400)는 버스 프로토콜 검사 결과에 따른 보상 동작을 수행할 수 있으며, 본 발명의 실시예에 따르면 버스 프로토콜 에러 발생시 보상 값(또는 보상 데이터)을 생성하는 부분 에러 보상 방식이 적용되거나, 또는 버스 프로토콜 에러를 발생한 IP를 은닉화(Conceal)하기 위한 일괄 에러 보상 방식이 적용될 수 있다.
SoC의 버스 프로토콜 검사는 다양한 레벨에서 수행될 수 있다. 예컨대, RTL 레벨(Register Transfer Level)에서 IP들의 개별 내부 동작을 논리 시뮬레이션 프로그램을 이용하여 검사가 수행될 수 있으며, 또는 SoC의 기능을 실제로 수행할 게이트가 구현된 게이트 레벨(Gate Level)에서 검사가 수행될 수 있다. 합성 불가능한 버스 프로토콜 검사기는 시뮬레이션 개발 시간의 제약으로 인해 테스트 패턴이 제한적이며, 또한 합성 가능한 버스 프로토콜 검사기는 FPGA(Field Programmable Gate Array)나 실제 칩에서 사용할 수 있으나 하드웨어 효율상 검사 항목과 검사 대상에 제한이 발생하며, 이에 따라 검사 가능 영역이 좁아지게 된다. 본 발명의 실시예에 따른 검사기(1400)는 RTL 레벨 뿐 아니라 FPGA나 실제 칩에서 사용이 가능한 하드웨어 형태로 표현된 코드를 이용하여 버스 프로토콜 검사 기능을 제공할 수 있으며, 이와 관련된 구체적인 동작을 설명하면 다음과 같다.
도 2a,b는 도 1의 검사기(1400)의 일 구현예를 나타내는 블록도이다. 도 2a는 도 1의 검사기(1400)가 본 발명의 실시예에 따른 버스 프로토콜 검사를 수행하는 버스 프로토콜 검사기(1400A)를 포함하는 예를 나타내며, 도 2b는 도 1의 검사기(1400)가 본 발명의 실시예에 따른 버스 프로토콜 에러 보상을 수행하는 에러 보상기(1400B)를 포함하는 예를 나타낸다.
도 2a에 도시된 바와 같이, SoC(1000)는 버스 프로토콜 검사기(1400A)를 포함하고, 버스 프로토콜 검사기(1400A)는 시스템 버스(1100)와 IP(1300) 사이에 연결되어 버스 신호에 대한 버스 프로토콜 검사 동작을 수행할 수 있다. IP(1300)는 도 1에 도시된 각종 IP들 중 어느 하나가 적용될 수 있다. 버스 프로토콜 검사기(1400A)는 버스 프로토콜 검사 동작을 수행하는 기능 이외에도, 검사 환경을 설정하기 위한 환경 설정 레지스터(미도시)를 더 포함할 수 있다. SoC(1000) 내부의 IP(1300)에 대한 억세스 요청에 따라 IP(1300)로부터 버스 신호가 버스 프로토콜 검사기(1400A)로 제공되며, 버스 프로토콜 검사기(1400A)는 환경 설정 레지스터(미도시)에 설정된 정보에 근거하여, 버스 신호의 검사 대상 및 검사 항목에 대한 검사 동작을 수행한다. 검사 결과는 시스템 버스(1100)를 통해 다른 IP(예컨대, 마스터 IP)로 제공될 수 있다.
한편, 도 2b에 도시된 바와 같이, SoC(1000)는 에러 보상기(1400B)를 포함하고, 에러 보상기(1400B)는 시스템 버스(1100)와 IP(1300) 사이에 연결되어 버스 신호에 대한 에러 보상 동작을 수행한다. 도 2b에는 도시되지 않았으나, 본 발명의 실시예 이외의 다른 방식이 적용된 버스 프로토콜 검사기가 SoC(1000)에 더 구비되고, 에러 보상기(1400B)는 에러 검사 결과를 수신하여 이를 기반으로 에러 보상 동작을 수행할 수 있다. 전술한 바와 같이, 에러 보상기(1400B)는 부분 에러 보상 방식 또는 일괄 에러 보상 방식을 적용하여 에러 보상 동작을 수행할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 SoC의 구현예를 나타내는 블록도로서, 도 1의 검사기(1400)가 도 2a,b에 도시된 버스 프로토콜 검사 및 에러 보상 기능을 갖는 예를 나타낸다. 도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 검사기(1400)는 에러 보상기(1410)와 버스 프로토콜 검사기(1420)를 포함할 수 있다. 에러 보상기(1410)와 버스 프로토콜 검사기(1420)는 시스템 버스(1100)와 IP(1300) 사이에 연결되어 에러 보상 동작 및 버스 프로토콜 검사 동작을 각각 수행할 수 있다. IP(1300)로부터의 버스 신호는 에러 보상기(1410)와 버스 프로토콜 검사기(1420)로 각각 제공되며, 버스 프로토콜 검사기(1420)는 내부 설정된 환경 정보에 따라 소정의 검사 대상 및 검사 항목에 대한 검사를 수행하고, 버스 프로토콜 에러가 발생된 경우 에러 정보를 에러 보상기(1410)로 출력한다.
에러 보상기(1410)는 내부 설정된 환경 정보에 따른 보상 정책에 따라 에러 발생된 버스 신호에 대해 에러 보상 동작을 수행한다. 에러 보상기(1410)는 버스 프로토콜 검사기(1420)로부터 에러 발생된 검사 대상 및 검사 항목에 대한 정보를 에러 정보로서 수신하고, 에러 정보에 기반하여 버스 신호에 대한 보상 동작을 수행할 수 있다. 에러 보상기(1410)는 자체 설정 값을 이용하여 버스 신호의 적어도 일부(예컨대, 데이터 정보)를 생성하거나 또는 전체 버스 신호를 생성함에 의하여 버스 프로토콜 에러를 보상할 수 있다. 에러 보상기(1410)와 버스 프로토콜 검사기(1420)에 대한 환경 설정 동작은, 외부로부터의 제어 신호가 시스템 버스(1100)를 통해 에러 보상기(1410)와 버스 프로토콜 검사기(1420) 각각에 구비되는 환경 설정 레지스터(미도시)로 제공됨에 의해 수행될 수 있다.
도 4는 도 1의 검사기의 일 구현예를 나타내는 블록도이다. 도 4에 도시된 바와 같이, 검사기(2000)는 검사 로직(2100), 환경설정 레지스터(2200) 및 에러 정보 출력 로직(2300)을 포함할 수 있다. 검사기(2000)는 합성 가능한 버스 프로토콜 검사기로서, IP로부터 버스 신호를 수신하고 검사 대상과 검사 항목에 대한 버스 프로토콜 검사를 수행한다.
환경설정 레지스터(2200)는 검사기(2000)의 검사 동작과 관련된 환경 설정 정보를 저장한다. 환경설정 레지스터(2200)에는 버스 신호에 대한 검사 대상 및 검사 항목에 관련된 정보가 저장될 수 있다. 시뮬레이션 단계에서 검사가 수행되는 신호들 중 일부는 합성 단계에서 검사 항목에서 제외될 수 있으며, 또는 합성 단계에서 일부의 신호들이 검사 항목으로 추가될 수 있다.
또한, 환경설정 레지스터(2200)에는 에러 정보 출력 로직(2300)의 에러 정보 출력 동작과 관련된 정보가 설정될 수 있다. 환경설정 레지스터(2200)에 저장되는 정보들은 외부로부터 시스템 버스(미도시)를 통한 환경설정 레지스터(2200)의 접근을 통해서 변경 가능하다. SoC 구동시 환경설정 레지스터(2200)에 저장된 정보는 검사 로직(2100) 및 에러 정보 출력 로직(2300)으로 제공되며, 이에 따라 버스 프로토콜 검사 환경이 설정된다.
검사 로직(2100)은 버스 신호를 수신하고, 검사 환경 설정에 따른 검사 대상 및 검사 항목에 대한 버스 프로토콜 검사를 수행한다. 버스 신호는 정의된 버스 프로토콜에 따른 신호 구조를 가지며, 버스 신호에 포함된 다수의 종류의 신호들 중 적어도 일부에 대해 버스 프로토콜 검사를 수행한다. 일예로서, AXI 프로토콜에 따라 트랜잭션(Transaction)이 수행되는 경우, 버스 신호는 데이터 정보 이외에도 어드레스 정보, 유효(VALID) 정보, 레디(READY) 정보 등의 신호를 포함할 수 있으며, 검사 로직(2100)은 환경설정 레지스터(2200)에 저장된 정보에 근거하여 적어도 일부의 신호들에 대한 버스 프로토콜 검사를 수행할 수 있다.
일예로서, IP들 사이에서 전송되는 다수의 트랜잭션들 중 적어도 일부가 검사 대상으로 선택되고, 선택된 트랜잭션에 대해 하나 이상의 항목에 대한 검사가 수행될 수 있다. 예컨대, AXI 프로토콜에 따르면 해당 트랜잭션의 전송 방향을 나타내는 ID 정보가 버스 신호에 포함될 수 있으며, 설정된 ID 정보를 갖는 버스 신호가 검사 대상으로 선택되고, 상기 버스 신호에 포함된 적어도 일부의 신호들 중 검사 항목으로 설정된 신호들에 대해 버스 프로토콜 검사가 수행될 수 있다.
에러 정보 출력 로직(2300)은 환경설정 레지스터(2200)에 저장된 정보에 근거하여 에러 정보 출력 동작을 수행하며, 검사 로직(2100)으로부터 검사 대상 및 검사 항목에 대한 버스 프로토콜 검사 결과를 수신한다. 에러 정보 출력 로직(2300)은 검사 결과에 응답하여 에러 정보를 시스템 버스를 통해 제공하며, 에러 정보에는 버스 프로토콜 검사를 통해 에러 발생된 검사 대상 및 항목에 관련된 정보가 포함될 수 있다.
한편, 검사 로직(2100)의 구체적인 구현 예 및 동작을 도 5 및 도 6을 참조하여 설명하면 다음과 같다. 도 5는 검사 로직(2100)의 일 구현예를 나타내는 블록도이고, 도 6은 도 5의 서브 검사 로직의 일 구현예를 나타내는 블록도이다.
도 5에 도시된 바와 같이, 검사 로직(2100)은 다수의 서브 검사 로직들(2110_1 ~ 2110_a)을 포함할 수 있다. 일예로서, a 개의 서브 검사 로직들(2110_1 ~ 2110_a)이 검사 로직(2100)에 구비될 수 있으며, 서브 검사 로직들(2110_1 ~ 2110_a) 각각은 설정된 환경 정보에 대응하는 검사 대상 및 검사 항목에 대한 버스 프로토콜 검사 동작을 수행할 수 있다. 동일한 검사 대상(예컨대, 버스 신호)에 다수의 검사 항목들이 존재하고, 서브 검사 로직별로 서로 다른 검사 항목에 대해 검사를 수행하므로, 이하에서는, 서브 검사 로직들(2110_1 ~ 2110_a) 각각이 서로 다른 항목을 검사하는 것으로 설명한다.
서브 검사 로직들(2110_1 ~ 2110_a) 각각은 검사 신호를 생성하는 기능 블록 및 실제 검사를 수행하는 기능 블록을 포함할 수 있으며, 예컨대 도 6에 도시된 바와 같이, 제1 서브 검사 로직(2110_1)은 검사 신호 생성기(2111) 및 검사부(2112)를 포함할 수 있다.
검사 로직(2100)에 구비되는 서브 검사 로직들(2110_1 ~ 2110_a) 각각은 레지스터로부터의 설정 정보(CHK_TAR, CHK_LIST)에 따라 고유한 검사 항목에 대한 버스 프로토콜 검사를 수행하며, 레지스터로부터의 설정 정보(CHK_TAR, CHK_LIST)가 변경됨에 따라 다른 검사 항목에 대해 버스 프로토콜 검사를 수행할 수 있다. 서브 검사 로직들(2110_1 ~ 2110_a) 각각의 검사 신호 생성기(2111)는 버스 신호로부터 해당 검사 항목에 대한 하나 이상의 검사 신호들을 생성하고 이를 검사부(2112)로 출력한다.
본 발명의 실시예에 따르면, 서브 검사 로직들(2110_1 ~ 2110_a) 각각에서 수행되는 버스 프로토콜 검사의 대상 및 항목이 변경될 수 있으므로, 어느 하나의 서브 검사 로직을 이용하여 다양한 검사 항목에 대한 검사가 수행될 수 있다. 이에 따라, 검사 신호 생성기(2111)가 검사 신호를 생성함에 있어서, 다양한 검사 항목을 충족시킬 수 있도록 검사 신호를 통일시킬 필요가 있다. 이를 위하여, 검사 신호 생성기(2111)는 버스 신호로부터 일정한 종류의 검사 신호를 생성하며, 예컨대 검사 신호 생성기(2111)는 검사 시작 신호(Check start), 검사 종료 신호(Check end), 동작 신호(또는 체크 값 신호, Check value) 및 에러 신호(Error)를 포함하는 검사 신호를 생성할 수 있다. 검사 시작 신호(Check start)는 해당 항목의 검사 시작을 나타내는 신호에 해당하고, 검사 종료 신호(Check end)는 해당 항목의 검사가 종료되었음을 나타내는 신호에 해당하며, 또한 동작 신호(Check value)는 실제 검사가 수행될 정보를 포함하는 신호일 수 있다. 또한, 에러 신호(Error)는 버스 신호에 에러가 발생한 경우 활성화되는 신호일 수 있다.
검사부(2112)는 검사 신호 생성기(2111)로부터의 검사 신호를 이용하여 버스 프로토콜 검사 동작을 수행한다. 일예로서, 검사 시작 신호(Check start)를 수신함에 응답하여 검사 모드로 진입하며, 동작 신호(Check value)에 대해 버스 프로토콜 검사를 수행한다. 또한, 검사 종료 신호(Check end)의 수신에 응답하여 동작 신호(Check value)에 대한 버스 프로토콜 검사를 종료한다. 예컨대 버스 신호가 소정 비트의 데이터 억세스에 응답하여 출력되는 신호인 경우, 검사부(2112)는 동작 신호(Check value)에 상기 소정 비트의 데이터가 포함되어 있는지에 대한 검사를 수행할 수 있다. 만약, 3 비트의 데이터 독출 요청에 따른 억세스가 수행되었음에도 불구하고 동작 신호에 2 비트의 데이터만이 포함된 경우, 검사부(2112)는 해당 검사 대상 및 항목에 대해 에러가 존재함을 나타내는 검사 결과(CHK_RES)를 출력한다. 또한, 검사부(2112)는 에러 신호(Error)의 활성화 여부를 검사할 수 있으며, 검사 시작 신호(Check start)와 검사 종료 신호(Check end) 사이에 에러 신호(Error)가 활성화되는 경우 이를 감지하여 검사 결과(CHK_RES)를 출력할 수 있다.
다시 도 4를 참조하면, 검사부(2112)로부터의 검사 결과(CHK_RES)는 에러 정보 출력 로직(2300)으로 제공된다. 에러 정보 출력 로직(2300)은 검사 결과에 기반하여 에러 정보를 생성하여 출력하며, 에러 정보에는 에러가 발생한 검사 대상 및 항목에 관련된 정보가 포함될 수 있다. 또한, 에러 정보 출력 로직(2300)으로부터의 에러 정보 출력 동작은 환경설정 레지스터(2200)에 설정된 환경 정보에 기반하여 수행될 수 있으며, 예컨대 일부의 검사 대상 및 항목에 대한 에러 정보의 출력이 불필요한 경우에는 에러 정보의 출력을 차단하는 반면에, 우선 순위(priority)를 적용하여 에러 정보를 출력할 필요가 있는 검사 대상 및 검사 항목에 에러가 발생되었을 경우, 이를 나타내는 에러 정보가 우선적으로 시스템 버스를 통해 제공될 수 있다.
상기와 같은 본 발명의 실시예에 따르면, 합성 가능한 버스 프로토콜 검사기로 검사를 수행함에 따라 시뮬레이션과 칩에서 버스 프로토콜 검사가 수행될 수 있으며, 검사 대상과 검사 항목이 설정에 따라 변경이 가능하므로, 한정된 하드웨어를 사용하여 커버 가능한 심사 영역을 증가시킬 수 있다.
도 7은 도 6의 서브 검사 로직의 구체적인 구현 예를 나타내는 블록도이다. 도 7에 도시된 바와 같이 제1 서브 검사 로직(2110_1)은 검사 신호 생성기(2111) 및 검사부(2112)를 포함하며, 검사 신호 생성기(2111)는 버스 신호로부터 제1 서브 검사 로직(2110_1)에 대응하는 검사 대상 및 항목에 대한 검사 신호들을 생성하여 출력하고, 검사부(2112)는 검사 신호 생성기(2111)로부터의 검사 신호들을 이용하여 버스 프로토콜 검사 동작을 수행한다. 도 7에서는 검사부(2112)에서의 버스 프로토콜 검사 동작이 FSM(Finite State Machine) 형태로 도시된다.
검사 신호 생성기(2111)로 검사 대상(CHK_TAR) 및 검사 항목(CHK_LIST)에 관련된 설정 정보가 제공되며, 검사 신호 생성기(2111)는 검사 대상(CHK_TAR)에 해당하는 버스 신호가 수신될 때 상기 버스 신호에 포함된 검사 항목(CHK_LIST)에 해당하는 신호로부터 검사 신호들을 생성할 수 있다. 버스 신호에는 버스 프로토콜에 의해 정의되는 다양한 종류의 신호들이 포함되며, 예컨대 억세스 요청되는 IP 및 저장 위치등을 나타내는 어드레스 정보(ADDR), 시스템 상에서의 트랜잭션(Transaction)의 길이 정보(LEN), 데이터의 크기를 나타내는 사이즈 정보(SIZE), 채널상에서 유효한 데이터 및 정보가 사용 가능한지를 나타내는 유효 정보(VALID), 신호를 수신하는 IP의 데이터 수신 가능 상태를 나타내는 상태 정보(READY), 리드/라이트 채널을 통한 데이터 전송시 마지막 데이터임을 나타내는 정보(LAST) 등이 포함될 수 있다.
검사부(2112)는 이벤트 검사기(2112_1)를 포함할 수 있다. 이벤트 검사기(2112_1)는 동작 신호(Check value)를 수신하고, 동작 신호(Check value)에 에러가 발생하였는지 여부(예컨대, 프로토콜에 적합한 비트 수의 데이터가 수신되었는지 여부)를 판별하여 에러 신호(Errer)를 출력하며, 또는 정상적인 동작 신호(Check value)가 수신되었음을 나타내는 이벤트 종료 신호(Event done)를 출력한다.
검사부(2112)는 동작 신호(Check value) 및 기타 다른 검사 신호(예컨대, 검사 시작 신호(Check start), 검사 종료 신호(Check end) 및 에러 신호(Error))를 이용하여 버스 프로토콜 검사를 실시한다. 검사부(2112)는 아이들(IDLE) 상태에 있다가 검사 시작 신호(Check start)에 응답하여 실제 검사 동작을 수행하는 런(RNN) 상태로 진입한다. 런(RNN) 상태에서 검사 종료 신호(Check end)나 에러 신호(Errer)가 발생하면 해당 검사 대상 및 항목에 에러가 존재하는 것으로 판단하고, 에러 정보를 출력함과 함께 다시 아이들(IDLE) 상태로 진입한다. 또한, 런(RNN) 상태에서 이벤트 종료 신호(Event done)가 수신되면 동작 신호(Check value)에 대한 검사가 완료되었음을 나타내는 검사 완료 상태(CHECK)로 진입한다. 검사 결과에 따라 에러 정보를 출력함과 함께 아이들(IDLE) 상태로 진입하거나, 에러 정보 출력 없이 아이들(IDLE) 상태로 진입할 수 있다.
도 8은 본 발명의 실시예에 따른 검사기의 에러 대상 및 에러 항목의 일예를 나타내는 표이다. 도 8에 도시된 바와 같이, SoC 내부의 시스템 버스를 통해 송수신되는 버스 신호 각각에 아이디(ID)가 부여될 수 있으며, 버스 신호 각각에 포함된 정보들에 대해 다양한 항목에 따른 검사가 수행될 수 있다. 어느 하나의 검사 대상(Target)에 두 개 이상의 검사 항목(LIST)이 포함될 수 있으며, 소정 개수의 서브 검사 로직을 이용하여 다양한 검사 대상 및 항목에 대해 버스 프로토콜 검사가 수행될 수 있다. 도 8에서는, 검사 대상 ID0에 대해 렝쓰(Length), 응답(Response) 발생 여부 등의 항목에 대한 검사가 이루어지고, 검사 대상 ID1에 대해 ID 정보나 렝쓰(Length) 등의 항목에 대한 검사가 이루어질 수 있으며, 또한 검사 대상 ID2에 대해 응답(Response) 발생 여부 등의 항목에 대한 검사가 이루어지는 예가 도시된다.
도 9는 본 발명의 일 실시예에 따른 SoC의 버스 프로토콜 검사 방법의 일예를 나타내는 플로우차트이다. SoC에는 시스템 버스에 연결되는 다수의 IP들이 구비되고, 다수의 IP들 중 적어도 일부의 IP들에 대응하여 버스 프로토콜을 검사하는 검사기가 구비되는 것으로 가정한다.
도 9에 도시된 바와 같이, SoC의 버스 프로토콜 검사 방법의 일예에 따르면, SoC에 구비되는 하나 이상의 환경설정 레지스터에 버스 프로토콜 검사 동작에 관련된 설정 정보를 저장함으로써 검사 환경이 설정된다(S11). SoC에 구비되는 검사기는 합성 가능한 버스 프로토콜 검사기로서, RTL 레벨(Register Transfer Level)에서 시뮬레이션을 통해 버스 프로토콜 검사를 수행하거나, FPGA나 실제 칩에서 버스 프로토콜 검사를 수행할 수 있다.
검사기는 IP로부터 출력되는 버스 신호를 수신하고(S12), 수신된 버스 신호의 버스 프로토콜 에러 여부를 검출하기 위한 검사를 수행한다. 버스 프로토콜 검사를 위하여, 검사 환경 설정 정보에 따라 검사 대상/항목이 선택되고(S13), 상기 버스 신호에 포함된 신호들 중 선택된 검사 대상/항목에 대응하는 신호로부터 검사 신호를 생성한다(S14). 예컨대, 검사기에는 실제 버스 프로토콜 검사를 수행할 검사 로직이 구비되며, 또한 검사 로직에는 각각 서로 다른 검사 항목에 대한 버스 프로토콜 검사 동작을 수행하는 다수의 서브 검사 로직들이 구비된다. 각각의 서브 검사 로직마다 서로 다른 신호로부터 검사 신호가 생성될 수 있다. 상기 검사 신호는 다양한 검사 항목을 충족시킬 수 있도록 일정한 종류의 신호들을 포함한다. 일예로서, 검사 신호는 검사 시작 신호, 검사 종료 신호, 동작 신호 및 에러 신호 등을 포함할 수 있다.
생성된 검사 신호를 이용하여 버스 프로토콜 검사 동작이 수행된다(S15). 버스 프로토콜 검사 동작은 검사 시작 신호에 응답하여 시작되며, 검사 종료 신호가 수신될 때 까지 동작 신호 및 에러 신호를 분석하는 동작을 포함할 수 있다. 예컨대, 동작 신호에 포함된 데이터의 비트 수와 프로토콜 규약에 따른 데이터의 비트 수가 서로 다를 때 버스 신호에 에러가 존재하는 것으로 검사될 수 있으며, 또한 일정한 레벨을 유지할 것이 요구되는 에러 신호에 레벨 천이가 발생하는 경우 버스 신호에 에러가 존재하는 것으로 검사될 수 있다. 검사 결과에 따른 에러 정보가 출력되며(S16), 상기 에러 정보에는 에러가 존재하는 검사 대상 및 검사 항목에 대한 정보가 포함될 수 있다.
도 10은 도 9의 버스 프로토콜 검사 수행 단계를 구체화한 일 예를 나타내는 플로우차트이다. 일예로서, 도 10에는 SoC에 구비되는 검사 로직에서 실제 검사를 수행하는 검사부의 동작의 일예가 도시된다.
전술한 바와 같이, 서브 검사 로직은 각각에 대응하는 검사 대상 및 항목에 대해 버스 프로토콜 검사를 수행하며, 버스 신호로부터 검사 신호를 생성한다. 검사 신호는 다양한 검사 항목에 대해 적용 가능하도록 일정한 종류의 신호들을 포함할 수 있으며, 일예로서 검사 시작 신호, 검사 종료 신호, 동작 신호 및 에러 신호 등을 포함할 수 있다. 상기 검사 신호는 서브 검사 로직 내에 구비되는 검사부로 제공된다.
검사부는 검사 시작 신호를 수신하고(S21), 이에 응답하여 버스 프로토콜 검사 수행을 시작한다(S22). 검사 수행 시작과 함께 동작 신호 및 에러 신호를 수신하고(S23), 상기 동작 신호 및 에러 신호를 분석함에 의하여 버스 프로토콜 에러 여부를 검사한다.
동작 신호 및 에러 신호를 분석한 결과, 동작 신호에 포함된 정보에 에러의 존재 여부가 판별되며(S24), 또한 동작 신호와는 별개로 에러 신호가 활성화되었는지 여부가 판별된다(S25). 상기 판별 결과에 따라 적어도 어느 하나의 신호에 에러가 발생된 경우에는 해당 검사 대상 항목에 에러가 발생하였음을 나타내는 정보를 출력한다(S26). 반면에 동작 신호 및 에러 신호가 모두 정상인 것으로 판별된 경우에는 에러 발생을 나타내는 정보의 출력이 차단된다. 상기와 같은 검사 신호들에 대한 분석 동작 이후 검사 종료 신호가 수신되며(S27), 이에 따라 해당 버스 신호에 대한 검사 수행을 종료한다(S28).
도 11은 도 1의 검사기의 다른 구현예를 나타내는 블록도이다. 도 11에서는 도 1의 검사기가 버스 프로토콜 에러를 보상하는 에러 보상기를 포함하는 예가 도시된다. 일예로서, 도 1의 검사기는 도 11에 도시된 에러 보상기만을 포함할 수도 있으며, 또는 도 1의 검사기는 도 11에 도시된 에러 보상기와 함께 전술한 버스 프로토콜 검사기를 함께 포함할 수 있다.
도 11에 도시된 바와 같이, 에러 보상기(3000)는 보상부(3100)와 환경설정 레지스터(3200)를 구비할 수 있다. 에러 보상기(3000)는, IP로부터의 버스 신호에 에러가 존재하는 경우 이를 보상하기 위한 기능을 수행하며, 보상부(3100)는 버스 신호에 포함된 정보들 중 적어도 일부를 생성하여 에러를 보상할 수 있다. 또는 보상부(3100)는 IP로부터 생성될 버스 신호를 대신 생성함에 의하여, 에러 존재하는 버스 신호를 생성하는 IP를 은닉화(conceal)하는 형태로 버스 프로토콜 에러를 보상할 수 있다. 환경설정 레지스터(3200)는 에러 보상기(3000)의 동작 환경을 설정하기 위한 정보를 저장하는 레지스터로서, 외부로부터의 제어 신호가 시스템 버스를 통해 환경설정 레지스터(3200)로 제공됨에 따라, 에러 보상과 관련된 동작 환경이 설정됨과 함께, 외부의 억세스에 의하여 동작 환경이 변경될 수 있다.
보상부(3100)는 제1 버스(예컨대, IP 버스)를 통해 IP로부터 버스 신호를 수신하고, 버스 신호의 에러 존재 여부에 기반하여 에러 보상된 버스 신호를 제2 버스(예컨대, 에러 보상 버스)를 통해 시스템 버스로 제공한다. 보상부(3100)는 전술한 버스 프로토콜 검사기로부터 버스 신호의 에러 검사 결과에 따른 에러 정보(Error Info)를 수신하고, 이에 응답하여 버스 신호의 에러를 보상할 수 있다. 전술한 실시예에서와 같이, 에러 정보(Error Info)에는 에러가 발생된 검사 대상 및 항목에 관련된 정보(Error target, Error LIST)가 포함될 수 있다.
또한, 보상부(3100)는 환경설정 레지스터(3200)로부터 에러 보상과 관련된 정책 및 활성화 정보(Policy, Enable)를 수신하고, 이에 대응하는 에러 보상 동작을 수행한다. 예컨대, 소정의 검사 대상 및 항목에 대해 에러 보상 동작이 디스에이블 된 경우에는 에러 정보(Error Info)에 무관하게 버스 신호를 제2 버스를 통해 시스템 버스로 출력할 수 있다. 환경 설정에 따라, 동일한 검사 대상에 대해 두 개 이상의 검사 항목이 존재하는 경우, 에러 보상 동작이 인에이블 된 정보에 대해 보상을 수행하여 보상된 버스 신호를 출력하는 반면에, 에러 보상 동작이 디스에이블 된 정보에 대해서는 보상 동작 없이 에러 존재하는 버스 신호를 출력할 수 있다.
또한, 에러 보상 정책에 따라, IP로부터 수신된 버스 신호에 대해 에러 보상을 수행할 수 있으며, 보상부(3100)는 억세스 요청된 IP로부터 버스 신호를 수신하고, 에러 정보(Error Info)에 응답하여 버스 신호에 대한 에러 보상을 수행한다. 이 경우, 에러가 발생한 IP의 버스 신호에 대해서만 에러를 보상하고, 에러가 발생하지 않은 IP의 버스 신호에 대해서는 보상 동작 없이 시스템 버스로 전달한다.
또는, 에러 보상 정책에 따라 에러가 존재하는 버스 신호를 발생하는 IP를 은닉화하는 일괄 에러 보상 방법이 적용될 수 있으며, 이 경우 보상부(3100)는 IP로부터의 버스 신호가 시스템 버스를 통해 출력되는 것을 차단하고, 시스템 버스를 통해 전달된 요청에 응답하여 버스 신호를 스스로 생성하고 이를 시스템 버스로 출력할 수 있다. 예컨대, 버스 프로토콜 검사 도중 일부 IP로부터의 버스 신호에 에러가 발생한 경우, 상기 IP에 대해서 일괄 에러 보상을 적용할 것인지의 정보가 설정될 수 있으며, 이후 해당 IP에 대한 검사가 수행되는 경우 일괄 에러 보상 방식을 적용하여 보상부(3100)에서 버스 신호가 생성될 수 있다. 상기 보상 방식 및 적용될 IP의 정보는 환경설정 레지스터(3200)에 저장될 수 있다. 이에 따라, 해당 IP는 SoC 상에서 은닉화될 수 있으며, 어느 하나의 IP의 버스 프로토콜 에러 발생에 의하여 전체 시스템 동작 정지 및 검사 불가능 상태가 발생되는 문제를 방지할 수 있다.
도 12는 도 11의 에러 보상기의 보상부의 일 구현예를 나타내는 블록도이다. 도 12에 도시된 바와 같이, 보상부(3100)는 버스 신호에 포함되는 다양한 신호의 에러를 보상하기 위한 에러 보상 로직들(3120)을 포함할 수 있다. 예컨대, AXI 프로토콜이 적용되는 경우 버스 신호가 송수신되는 채널은 라이트 어드레스 채널, 라이트 데이터 채널, 라이트 응답 채널, 리드 어드레스 채널 및 리드 데이터 채널 등을 포함할 수 있으며, 보상부(3100)는 각각의 채널에 대응하는 에러 보상 로직을을 포함할 수 있다. 이에 따라, 에러 보상 로직들(3120)은 라이트 어드레스 항목에 에러 발생시 이를 보상하기 위한 에러 보상 로직(3121), 라이트 데이터 항목에 에러 발생시 이를 보상하기 위한 에러 보상 로직(3122), 라이트 응답 항목에 에러 발생시 이를 보상하기 위한 에러 보상 로직(3123), 리드 어드레스 항목에 에러 발생시 이를 보상하기 위한 에러 보상 로직(3124) 및 리드 데이터 항목에 에러 발생시 이를 보상하기 위한 에러 보상 로직(3125) 등을 포함할 수 있다. 도 12에는 도시되지 않았으나 버스 신호에 포함되는 다른 신호들에 대해 에러가 발생한 경우에 이를 보상하기 위한 추가의 에러 보상 로직이 더 구비될 수 있다.
보상부(3100)는 버스 신호에 포함된 신호들을 이에 대응하는 에러 보상 로직으로 제공하는 제1 경로 선택부(3110)를 더 포함할 수 있으며, 예컨대 제1 경로 선택부(3110)는 디멀티플렉서를 포함할 수 있다. 버스 신호에 포함되는 다양한 신호들은 시스템 버스 상의 서로 다른 채널을 통해 전송될 수 있으며, 제1 경로 선택부(3110)는 버스 신호에 포함되는 신호를 각각에 대응하는 에러 보상 로직으로 출력한다. 또한, 보상부(3100)는 에러 보상된(또는, 정책에 따라 에러 보상이 수행되지 않은) 버스 신호를 시스템 버스로 출력하기 위한 제2 경로 선택부(3130)를 더 포함할 수 있다. 제2 경로 선택부(3130)는 에러 보상된 버스 신호와 에러 보상되지 않은 버스 신호를 선택적으로 출력하기 위한 다수 개의 제1 멀티플렉서들을 포함할 수 있으며, 또한 제1 멀티플렉서들로부터 출력된 버스 신호를 시스템 버스로 제공하기 위한 제2 멀티플렉서를 더 포함할 수 있다.
에러 대상 및 항목에 관련된 에러 정보(Error Info)가 에러 보상 로직들(3120)로 제공되고, 각각의 에러 보상 로직은 에러 정보(Error Info)에 응답하여 해당 신호에 대한 에러 보상 동작을 수행한다. 또한, 에러 보상 정책 정보(Policy)에 따라 부분 에러 보상 방식을 적용할 것인지 또는 일괄 에러 보상 방식을 적용할 것인지가 결정되며, 또한 에러 보상 활성화 정보(Enable)에 따라 에러 보상된 버스 신호가 출력될 것인지 또는 에러 보상이 생략된 버스 신호가 출력될 것인지가 선택된다.
부분 에러 보상 방식이 적용되는 경우, 에러 보상 로직들(3120) 각각은 IP로부터 수신된 버스 신호에 대해 에러 보상 동작을 수행하며, 예컨대 라이트 데이터에 에러가 발생된 경우 라이트 데이터 에러 보상 로직(3122)은 임의의 라이트 데이터를 생성하여 버스 신호를 새로 구성하고 이를 제2 경로 선택부(3130)를 통해 시스템 버스로 전달한다. 반면에, 일괄 에러 보상 방식이 적용되는 경우, 에러 보상 로직들(3120) 각각은 IP로부터 수신된 버스 신호가 시스템 버스를 통한 출력을 차단하며, 에러 보상 로직들(3120) 내부에서 버스 신호를 생성하여 이를 제2 경로 선택부(3130)를 통해 시스템 버스로 전달한다.
도 13은 도 11의 에러 보상기의 다른 구현 예를 나타낸다. 도 12에서는 에러 보상 정책 정보(Policy)에 의하여 에러 보상 로직이 부분 에러 보상 방식 또는 일괄 에러 보상 방식에 따라 동작하는 반면에, 도 13에서는 부분 에러 보상과 일괄 에러 보상이 서로 다른 기능 블록에 의해 수행되는 예가 도시된다.
도 13에 도시된 바와 같이, 에러 보상기(3000)는 보상부(3100)와 은닉화부(3300)를 포함하며, 보상부(3100)는 다수의 에러 보상 로직들(3120)을 포함할 수 있다. 또한 은닉화부(3300)는 하나 이상의 가상 응답 생성부(3310)를 포함할 수 있다. 레지스터(3200)로부터의 에러 보상 정책 정보(Policy)가 보상부(3100)와 은닉화부(3300)로 제공되며, 이에 따라 보상부(3100)와 은닉화부(3300) 중 어느 하나가 활성화될 수 있다. 보상부(3100)가 활성화되는 경우, 도 12에서 설명된 바와 같이 버스 프로토콜 검사기(미도시)로부터의 에러 정보에 따라 버스 신호에 대한 에러 보상 동작을 수행하고, 에러 보상된 버스 신호를 시스템 버스로 출력한다.
또는, 환경 설정에 따라 은닉화부(3300)가 활성화될 수 있으며, 이 경우 해당 IP에 대한 억세스 동작이 차단되도록 하며, 해당 IP에 대한 억세스 동작이 요청되는 경우 가상 응답 생성부(3310)에서 이에 대응하는 가상 응답(Fake response)을 생성하여 시스템 버스로 출력한다. 예컨대, 다른 IP로부터 해당 IP로 억세스 요청을 위한 버스 신호가 시스템 버스를 통해 에러 보상기(3000)로 제공되며, 해당 IP에 대한 억세스를 스킵하고 가상 응답 생성부(3310)에서 가상 응답(Fake response)을 생성하여 출력함으로써 에러가 존재하는 버스 신호를 발생하는 IP를 SoC 내에서 은닉화시킨다.
도 14a,b는 에러 보상 정책에 따른 신호 전달 과정의 일예를 나타내는 도면이다. 도 14a에 따르면 부분 에러 보상 방식이 적용된 경우 시스템 버스(System bus) 및 IP 버스(IP bus)를 통해 신호가 송수신되며, IP 버스(IP bus)를 통해 전달되는 IP의 버스 신호에 대한 버스 프로토콜 에러가 검사되고 그 검사 결과가 에러 보상기로 제공된다. 만약, 응답 신호가 발생되지 않고 일정한 시간을 초과하는 경우, 에러 보상기는 에러 보상된 버스 신호를 생성하고 이를 시스템 버스(System bus)를 통해 출력한다. 이와 함께, 에러가 발생된 검사 대상 및 항목에 대한 에러 정보가 시스템 버스(System bus)를 통해 함께 출력될 수 있다. 이 경우, IP로부터의 응답 신호로서의 버스 신호가 전달되지 않음에 의해 발생될 수 있는 시스템 동작 정지 등의 문제를 방지할 수 있다.
한편, 도 14b에 따르면 에러 보상 방식이 적용된 경우로서, 시스템 버스(System bus)를 통해 수신된 해당 IP에 대한 억세스 요청에 응답하여, 에러 보상기는 해당 IP에 대한 억세스 동작 없이 가상 응답 신호를 생성하여 이를 시스템 버스를 통해 출력한다. 즉, 에러 존재하는 버스 신호를 생성하는 IP로 시스템 버스를 통한 신호가 제공되는 것을 차단함과 함께, 에러 보상기는 억세스 요청에 응답하여 가상 응답 신호를 시스템 버스로 출력한다.
도 15 및 도 16은 본 발명의 실시예에 따른 에러 보상 동작의 일예를 나타내는 플로우차트이다. 도 15는 부분 에러 보상 방식이 적용된 경우의 보상 동작, 도 16은 부분 및 일괄 에러 보상 방식이 선택적으로 적용된 경우의 보상 동작의 일예를 나타낸다.
도 15에 도시된 바와 같이, 에러 보상에 관련된 정보로서 활성화 정보 및 정책 정보가 레지스터에 설정되고(S31), 레지스터에 설정된 정보에 따라 에러 보상 환경이 설정된다. 이후, 억세스 요청되는 IP로부터 버스 신호가 출력됨에 따라 이를 수신하고(S32), 이와 병렬하게 상기 버스 신호에 대한 버스 프로토콜 검사가 버스 프로토콜 검사기에 의해 수행된다. 이에 따라 버스 프로토콜 검사 결과가 수신된다.
에러 보상기는 수신된 버스 신호에 대해 에러 보상을 수행하며, 예컨대 버스 프로토콜 검사 결과에 기반하여 에러가 발생된 검사 대상 및 항목에 대한 버스 신호에 대해 에러 보상 동작을 수행한다(S34). 이에 따라, 에러 보상된 버스 신호가 시스템 버스로 출력된다(S35). 전술한 바와 같이, 에러 보상이 비활성화되도록 설정된 경우에는, 버스 신호에 대해 에러 보상 동작을 수행하지 않거나, 또는 에러 보상된 버스 신호와 에러 보상이 스킵된 버스 신호 중 에러 보상이 스킵된 버스 신호를 선택적으로 시스템 버스로 출력할 수 있다.
한편, 도 16에 도시된 바와 같이, 시스템 버스를 통해 해당 IP에 대한 억세스 요청이 수신되며(S41), 억세스 요청되는 해당 IP에 대해 에러 보상 정책으로서 은닉화 정책이 설정되었는지가 판단된다(S42). 판단 결과, 해당 IP에 대해 은닉화가 설정되어 있는 경우, 상기 억세스 요청에 응답하여 해당 IP를 억세스하지 않고 에러 보상기 내에서 이에 응답하는 버스 신호를 생성한다(S43). 가상 응답 신호로서 생성된 버스 신호는 시스템 버스로 출력된다(S44).
한편, 상기 판별 결과 해당 IP에 대해 은닉화가 설정되어 있지 않은 경우에는, 해당 IP로부터 억세스 요청에 응답하는 버스 신호를 수신함과 함께, 버스 프로토콜 검사기로부터 상기 버스 신호에 대한 버스 프로토콜 검사 결과를 나타내는 에러 정보를 수신한다(S45). 에러 정보를 수신한 결과에 따라 에러가 발생된 검사 대상 및 항목에 대하여 에러 보상을 수행하고(S46), 에러 보상된 버스 신호를 시스템 버스로 출력한다(S47).
도 17a,b은 본 발명의 시스템 온 칩이 적용된 디바이스의 일 예를 나타내는 블록도이다. 도 17a는 본 발명의 시스템 온 칩이 적용된 디바이스의 블록도를 나타내며, 도 17b는 도 17a의 시스템 온 칩의 일 구현예를 나타내는 블록도이다.
모바일 장치 등의 디바이스(100)에 본 발명의 실시예에 따른 SoC(4000)이 적용될 수 있으며, 이와 함께 디바이스(100)는 사용자 인터페이스를 위하여 디스플레이 수단(110), 키 패드 또는 터치 스크린 등 사용자의 입력을 수신하는 입력부(120), 디바이스(100) 내부로 전력의 제공을 제어하기 위한 전력 관리부(130)를 더 포함할 수 있다. 모바일 장치 등의 디바이스(100)는 휴대폰, 스마트 폰, MP3 등 음향 기기, 노트북 및 태블릿 PC 등 각종 장치 등이 적용될 수 있으며, 디바이스(100) 별로 다양한 기능에 따른 다른 장치들이 디바이스(100)에 더 구비될 수 있다.
한편, 도 17b에 도시된 바와 같이, SoC(4000)는 각종 기능을 수행하기 위한 IP들이 하나의 반도체 칩 내에 집적되어 구현될 수 있으며, 예컨대 시스템 버스(System bus)에 상호 연결된 중앙 처리장치(CPU, 4100), 오디오/비디오 프로세서(4200), 유/무선 통신을 위한 모뎀(4300), 외부 시스템 정보 및/또는 유저 정보 등을 저장하기 위한 메모리(4400) 및 SoC(4000) 내외부로의 입출력 인터페이싱을 위한 입출력 인터페이스(4500) 등을 IP로서 포함할 수 있다. 그러나, 본 발명의 실시예는 이에 국한될 필요는 없으며, 도 17b에 도시된 일부의 IP들은 SoC(4000)에서 생략될 수 있으며, 또한 기타 다른 IP들이 SoC(4000)에 포함되어 구성되어도 무방하다.
SoC(4000)는 본 발명의 실시예에 따른 검사기(4600)를 포함할 수 있으며, 전술한 바와 같이 검사기(4600)는 합성 가능한 검사기로서 그 내부에 환경 설정 레지스터(미도시)를 포함한다. 환경 설정 레지스터에 저장된 정보에 따라 버스 프로토콜 검사가 수행될 검사 대상 및 항목에 대해 외부로부터의 설정 변경이 가능하며, 검사기(4600)는 버스 프로토콜 검사 이외에도 버스 신호에 대한 에러 보상 동작을 수행할 수 있다. 전술한 바와 같이 검사기(4600)는 SoC(4000)에 구비되는 IP들 각각에 대응하여 배치될 수 있으며, 일예로서 SoC(4000)에 구비되는 IP들 중 일부의 IP에 대응하여 배치될 수도 있다. 또한, 전술한 에러 보상 동작의 경우, IP로부터의 버스 신호에 대해 에러 대상 및 항목에 따른 보상 동작을 수행하는 부분 에러 보상 방식이 적용되거나, 또는 IP로부터의 억세스가 차단되고 에러 보상기에 의해 가상 응답 신호가 생성되는 일괄 에러 보상 방식이 적용될 수 있다.
도 18a,b는 본 발명의 또 다른 실시예에 따른 버스 프로토콜 에러 보상기를 나타내는 블록도이다. 도 18a에 도시된 바와 같이, 시스템 온 칩(5000)은 버스 프로토콜 에러 보상기(5100)를 포함할 수 있으며, 버스 프로토콜 에러 보상기(5100)는 적어도 두 개의 시스템 버스(5200, 5300)에 연결될 수 있다. 예컨대, 제1 및 제2 시스템 버스(5200, 5300)가 시스템 온 칩(5000)에 구비될 수 있다. 또한, 도 18a,b에는 버스 프로토콜 에러 보상기가 도시되었으나, 전술한 실시예에서의 버스 프로토콜 검사기가 더 구비되어도 무방하다.
상기 제1 및 제2 시스템 버스(5200, 5300)는 각각 소정의 프로토콜에 따라 신호를 송수신할 수 있으며, 예컨대 AMBA2/3/4 관련 프로토콜로서 AXI4, ACE 등의 프로토콜이 적용될 수 있다. 또한, 상기 제1 및 제2 시스템 버스(5200, 5300)는 서로 다른 프로토콜에 따라 신호를 송수신할 수 있다.
버스 프로토콜 에러 보상기(5100)는 제1 및 제2 시스템 버스(5200, 5300)를 통해 신호를 송수신함에 있어서 프로토콜을 컨버젼하여 신호를 전달할 수 있으며, 이에 따라 상기 제1 및 제2 시스템 버스(5200, 5300) 각각에 대해 적용된 프로토콜에 따라 신호가 송수신될 수 있도록 한다. 이를 위하여, 버스 프로토콜 에러 보상기(5100)는 프로토콜 변환기(5110)를 포함할 수 있다. 버스 프로토콜 에러 보상기(5100)가 제1 프로토콜에 따른 신호를 수신하고, 프로토콜을 변환하여 제2 프로토콜에 따른 신호를 전송할 때, 제1 프로토콜에 따른 신호에 대해 전술한 실시예에서 설명된 바와 같은 에러 보상을 수행하고, 에러 보상 결과에 따라 생성된 신호에 대한 프로토콜 변환 과정을 통해 제2 프로토콜에 따른 신호가 전송되도록 한다.
한편, 도 18b에 도시된 바와 같이, 시스템 온 칩의 적어도 일부의 IP들은 파워 온 모드에서 동작하고, 다른 일부의 IP들은 파워 오프 상태일 수 있다. 이 경우, 파워 온 상태의 IP에서 신호가 버스 프로토콜 에러 보상기(6100)로 제공되는 경우, 버스 프로토콜 에러 보상기(6100)는 이를 해당하는 IP로 전송하여도, 상기 IP가 파워 오프 상태이므로 응답 신호를 수신할 수 없다. 이 경우, 버스 프로토콜 에러 보상기(6100)는 전술한 실시예에서와 같은 가상 응답 신호를 생성하여 이를 파워 온 상태의 IP로 제공할 수 있다. 또는, 버스 프로토콜 에러 보상기(6100)는 그 내부에 파워 오프 상태의 IP들의 정보를 저장할 수 있으며, 신호 전송(및 응답)이 요청되는 IP가 파워 오프 상태인 경우, 파워 오프 상태의 IP로 신호를 전송할 필요 없이 버스 프로토콜 에러 보상기(6100) 내부적으로 가상 응답 신호를 생성하여 이를 파워 온 상태의 IP로 제공할 수 있다. 또한, 이와 함께 해당 IP가 파워 오프 상태임을 나타내는 정보를 파워 온 상태의 IP로 제공할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 시스템 버스;
    상기 시스템 버스를 통해 버스 신호를 출력하는 복수의 아이피(IP)들; 및
    상기 복수의 아이피들 중 적어도 일부에 대응하여 배치되는 하나 이상의 검사기를 구비하고,
    상기 검사기는,
    버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 제1 환경설정 레지스터; 및
    상기 버스 신호를 수신하고, 상기 제1 환경설정 레지스터에 설정된 정보에 따라 상기 버스 신호에 포함된 신호들 중 적어도 일부에 대한 버스 프로토콜 검사를 수행하는 검사 로직을 구비하는 것을 특징으로 하는 시스템 온 칩.
  2. 제1항에 있어서, 상기 검사기는,
    상기 검사 로직으로부터의 버스 프로토콜 검사 결과에 응답하여, 에러 발생된 검사 대상 및 항목에 관련된 정보를 포함하는 에러 정보를 출력하는 에러 정보 출력 로직을 더 구비하는 것을 특징으로 하는 시스템 온 칩.
  3. 제1항에 있어서, 상기 검사 로직은,
    각각 서로 다른 검사 항목에 대한 버스 프로토콜 검사를 수행하는 다수의 서브 검사 로직들을 포함하는 것을 특징으로 하는 시스템 온 칩.
  4. 제3항에 있어서,
    상기 서브 검사 로직들 각각은, 상기 제1 환경설정 레지스터에 설정된 정보의 변경에 따라 버스 프로토콜 검사를 수행할 검사 항목을 변경하는 것을 특징으로 하는 시스템 온 칩.
  5. 제3항에 있어서, 상기 서브 검사 로직들 각각은,
    상기 버스 신호로부터 해당하는 검사 항목에 대한 검사 신호들을 생성하는 검사 신호 생성기; 및
    상기 검사 신호들을 이용하여 해당 검사 항목에 대한 버스 프로토콜 검사를 수행하여 검사 결과를 출력하는 검사부를 포함하는 것을 특징으로 하는 시스템 온 칩.
  6. 제5항에 있어서,
    상기 서브 검사 로직들 각각은 서로 다른 검사 항목에 대하여 동일한 종류의 검사 신호들을 생성하는 것을 특징으로 하는 시스템 온 칩.
  7. 제6항에 있어서, 상기 검사 신호 생성기는,
    상기 버스 신호에 포함된 신호들 중 해당 검사 항목에 대응하는 신호로부터 검사 시작 신호, 검사 종료 신호, 동작 신호 및 에러 신호를 상기 검사 신호로서 생성하는 것을 특징으로 하는 시스템 온 칩.
  8. 제1항에 있어서,
    상기 시스템 버스는 AXI 프로토콜을 갖는 버스 신호를 전달하는 것을 특징으로 하는 시스템 온 칩.
  9. 제1항에 있어서,
    상기 검사기는 버스 프로토콜 에러를 보상하는 에러 보상기를 더 포함하고,
    상기 에러 보상기는,
    버스 프로토콜 에러를 보상할 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 제2 환경설정 레지스터; 및
    상기 제2 환경설정 레지스터 설정된 정보에 따라 버스 프로토콜 에러 보상을 수행하고, 에러 보상된 버스 신호를 상기 시스템 버스로 출력하는 보상부를 포함하는 것을 특징으로 하는 시스템 온 칩.
  10. 제9항에 있어서, 상기 보상부는,
    억세스 요청된 아이피로부터의 버스 신호를 아이피 버스를 통해 수신하고, 상기 버스 신호에 대한 버스 프로토콜 검사 결과에 따라 버스 프로토콜 에러 보상을 수행하는 것을 특징으로 하는 시스템 온 칩.
  11. 제9항에 있어서, 상기 보상부는,
    상기 시스템 버스를 통해 억세스 요청 신호를 수신하며, 상기 억세스 요청 신호에 응답하여 가상 응답 신호를 생성하고, 상기 가상 응답 신호를 상기 에러 보상된 버스 신호로서 상기 시스템 버스로 출력하는 것을 특징으로 하는 시스템 온 칩.
  12. 제9항에 있어서, 상기 보상부는,
    서로 다른 채널을 통해 전송되는 신호들에 대한 에러 보상을 수행하기 위한 다수의 에러 보상 로직들을 포함하는 것을 특징으로 하는 시스템 온 칩.
  13. 제12항에 있어서, 상기 보상부는,
    상기 제2 환경설정 레지스터에 설정된 정보에 따라, 에러 보상된 버스 신호 및 에러가 보상되지 않은 버스 신호를 선택적으로 출력하는 경로 선택부를 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  14. 시스템 온 칩 내의 시스템 버스와 아이피(IP) 사이에 연결되는 검사 로직;
    버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보가 설정되며, 상기 시스템 버스를 통한 외부로부터의 접근에 의해 설정이 변경 가능한 환경설정 레지스터; 및
    상기 검사 로직으로부터의 버스 프로토콜 검사 결과에 따른 에러 정보를 출력하는 에러 정보 출력 로직을 구비하고,
    상기 검사 로직은, 다수의 검사 항목들 중 상기 환경설정 레지스터에 설정된 정보에 따른 검사 항목들에 대한 버스 프로토콜 검사를 수행하기 위한 다수의 서브 검사 로직들을 포함하는 것을 특징으로 하는 버스 프로토콜 검사기.
  15. 제14항에 있어서, 상기 검사 로직은,
    상기 환경설정 레지스터의 설정 변경에 응답하여 버스 프로토콜 검사를 수행할 검사 항목들을 변경하는 것을 특징으로 하는 버스 프로토콜 검사기.
  16. 제14항에 있어서,
    상기 버스 프로토콜 검사에 이용되는 코드는 RTL 레벨 및 게이트 레벨에서 이용 가능한 하드웨어 형태로 표현된 코드인 것을 특징으로 하는 버스 프로토콜 검사기.
  17. 시스템 온 칩의 버스 프로토콜 검사 방법에 있어서,
    버스 프로토콜 검사가 수행될 검사 대상 및 항목에 관한 정보를 환경설정 레지스터에 저장하는 단계;
    억세스 요청된 아이피(IP)로부터의 버스 신호를 검사기에서 수신하는 단계;
    상기 수신된 버스 신호에 대해, 상기 환경설정 레지스터에 저장된 정보에 따라 선택된 하나 이상의 검사 항목에 대하여 버스 프로토콜 검사를 수행하는 단계; 및
    검사 결과에 대응하는 에러 정보를 상기 시스템 온 칩의 시스템 버스를 통해 출력하는 단계를 구비하고,
    상기 환경설정 레지스터에 저장된 정보가 변경됨에 따라 상기 버스 프로토콜 검사를 수행할 검사 항목이 변경되는 것을 특징으로 하는 시스템 온 칩의 버스 프로토콜 검사 방법.
  18. 제17항에 있어서,
    상기 검사기는 다수 개의 서브 검사 로직들을 포함하는 검사 로직을 구비하고,
    상기 서브 검사 로직들 각각은, 상기 환경설정 레지스터에 저장된 정보의 변경에 따라 버스 프로토콜 검사를 수행할 검사 항목을 변경하는 것을 특징으로 하는 시스템 온 칩의 버스 프로토콜 검사 방법.
  19. 제17항에 있어서,
    상기 에러 정보에 기반하여 에러 보상된 버스 신호를 생성하는 단계; 및
    상기 에러 보상된 버스 신호를 상기 시스템 버스로 출력하는 단계를 더 구비하는 것을 특징으로 하는 시스템 온 칩의 버스 프로토콜 검사 방법.
  20. 시스템 버스;
    상기 시스템 버스를 통해 버스 신호를 출력하는 복수의 아이피(IP)들;
    상기 복수의 아이피들 중 적어도 일부에 대응하여 배치되며, 환경설정 정보에 따라 검사 대상 및 검사 항목을 변경하고, 버스 프로토콜 검사 결과에 기반하여 에러 정보를 출력하는 버스 프로토콜 검사기; 및
    상기 에러 정보에 응답하여 에러 보상된 버스 신호를 생성하고, 상기 에러 보상된 버스 신호를 상기 시스템 버스로 출력하는 에러 보상기를 구비하는 것을 특징으로 하는 시스템 온 칩.
KR1020130028242A 2013-03-15 2013-03-15 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법 KR20140113175A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130028242A KR20140113175A (ko) 2013-03-15 2013-03-15 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법
US14/199,088 US9442788B2 (en) 2013-03-15 2014-03-06 Bus protocol checker, system on chip including the same, bus protocol checking method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130028242A KR20140113175A (ko) 2013-03-15 2013-03-15 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법

Publications (1)

Publication Number Publication Date
KR20140113175A true KR20140113175A (ko) 2014-09-24

Family

ID=51534220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130028242A KR20140113175A (ko) 2013-03-15 2013-03-15 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법

Country Status (2)

Country Link
US (1) US9442788B2 (ko)
KR (1) KR20140113175A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210010761A (ko) * 2019-07-19 2021-01-28 삼성전자주식회사 시스템 온 칩 및 그 동작 방법
CN110399325B (zh) * 2019-07-30 2023-05-30 江西理工大学 一种基于iic总线协议的改进型ip核

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4545055A (en) 1983-07-20 1985-10-01 Loral Corporation Error analyzer for data communicated by bus protocol
JP2658111B2 (ja) 1988-01-13 1997-09-30 セイコーエプソン株式会社 手動式プリンタ
JPH08297588A (ja) 1995-04-25 1996-11-12 Fujitsu Ltd 二重照合装置
US5751975A (en) 1995-12-28 1998-05-12 Intel Corporation Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge
US6000040A (en) * 1996-10-29 1999-12-07 Compaq Computer Corporation Method and apparatus for diagnosing fault states in a computer system
KR100256965B1 (ko) 1997-12-30 2000-05-15 윤종용 어드레스 버스의 1 비트 오류 자동 수정 회로 및 방법
US6678645B1 (en) 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US6876941B2 (en) * 2001-04-12 2005-04-05 Arm Limited Testing compliance of a device with a bus protocol
KR100448709B1 (ko) * 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
US7194658B2 (en) * 2003-07-24 2007-03-20 Sonics, Inc. Various methods and apparatuses for interfacing of a protocol monitor to protocol checkers and functional checkers
KR100795441B1 (ko) 2003-10-10 2008-01-16 노키아 코포레이션 짧은 대기시간의 인터럽트 및 제어 신호, 핫플러그 에러 검출 및 복구, 그리고 대역폭 할당을 하는 통신 버스
KR20050037220A (ko) 2003-10-17 2005-04-21 엘지전자 주식회사 컴퓨터 시스템의 버스 인터페이스 장치
KR100797468B1 (ko) 2005-12-14 2008-01-24 엘지전자 주식회사 시스템 버스와 아이피간 인터페이싱 장치와 방법 및 컴퓨터프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체
US7673170B2 (en) * 2006-04-25 2010-03-02 Intel Corporation Personal computer bus protocol with error correction mode
US7627800B2 (en) 2006-05-22 2009-12-01 International Business Machines Corporation Communicating with error checking to a device capable of operating according to an address prefix serial bus protocol
CN101989242B (zh) * 2010-11-12 2013-06-12 深圳国微技术有限公司 一种提高soc系统安全的总线监视器及其实现方法
US20120226949A1 (en) * 2011-03-02 2012-09-06 Texas Instruments Incorporated Multi-Channel Bus Protection
US8966327B1 (en) * 2012-06-21 2015-02-24 Inphi Corporation Protocol checking logic circuit for memory system reliability

Also Published As

Publication number Publication date
US9442788B2 (en) 2016-09-13
US20140281759A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
EP3287800B1 (en) Jtag debug apparatus and jtag debug method
US7222262B2 (en) Methods and devices for injecting commands in systems having multiple multi-processor clusters
KR102000957B1 (ko) 프로그램가능한 테스트 기기
US9977758B1 (en) Device profiling for tuning OpenCL applications on programmable integrated circuits
US7519886B2 (en) Apparatus and method for integrated functional built-in self test for an ASIC
CN107077409B (zh) 用于在电子系统中进行多接口调试的方法和装置
CN107085560B (zh) 一种emif接口与ahb/apb时序桥接电路及其控制方法
JP6653756B2 (ja) 回路設計をデバッグするための方法および回路
KR100789749B1 (ko) 시스템 온 칩 테스트 장치
US7047458B2 (en) Testing methodology and apparatus for interconnects
US6424926B1 (en) Bus signature analyzer and behavioral functional test method
CN101458971A (zh) 一种嵌入式存储器的测试系统及测试方法
US20100313092A1 (en) Technique for initializing data and instructions for core functional pattern generation in multi-core processor
US20170205462A1 (en) Power-on self-test and in-system test
KR20100008703A (ko) 메모리 인터페이스를 사용한 SoC 디바이스 검증 모델
WO2015085247A1 (en) System and method for providing client-side address translation in a memory management system
CN114330176A (zh) 芯片验证方法、装置、电子设备及存储介质
KR20140113175A (ko) 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법
JP2005196782A (ja) メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法
US7908533B2 (en) Processor to JTAG test access port interface
CN113760751B (zh) 生成测试用例的方法、电子设备及存储介质
US9547568B2 (en) Method and apparatus for verifying circuit design
US8225244B2 (en) Large scale integration device and large scale integration design method including both a normal system and diagnostic system
KR20030055150A (ko) 마이크로프로세서 및 마이크로프로세서의 처리 방법
US8160859B2 (en) Medium storing logic simulation program, logic simulation apparatus, and logic simulation method

Legal Events

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