KR101090556B1 - 반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법 - Google Patents

반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법 Download PDF

Info

Publication number
KR101090556B1
KR101090556B1 KR1020097019084A KR20097019084A KR101090556B1 KR 101090556 B1 KR101090556 B1 KR 101090556B1 KR 1020097019084 A KR1020097019084 A KR 1020097019084A KR 20097019084 A KR20097019084 A KR 20097019084A KR 101090556 B1 KR101090556 B1 KR 101090556B1
Authority
KR
South Korea
Prior art keywords
event
control
unit
instruction information
entry
Prior art date
Application number
KR1020097019084A
Other languages
English (en)
Other versions
KR20090121321A (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 닛본 덴끼 가부시끼가이샤
Publication of KR20090121321A publication Critical patent/KR20090121321A/ko
Application granted granted Critical
Publication of KR101090556B1 publication Critical patent/KR101090556B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

주기능 구성부는, 연속적인 소정의 동작을 실행하여, 동작에 연관되는 이벤트를 연속적으로 발생시킨다. 디버그·트레이스 회로는, 주기능 구성부에서 발생하는 이벤트와 제어 정보 리스트 내의 1개의 엔트리의 검출 조건 지시 정보를 비교하고, 비교 결과에 따라서, 검출 조건 지시 정보와 쌍을 이루는 동작 지시 정보에 의해 지정된 동작을 실행한다. 디버그·트레이스 회로는, 이것을 제어 정보 리스트에 따라서 연속적으로 행하여, 이벤트를 특정한다.
이벤트, 제어 정보 리스트, 검출 조건 지시 정보, 동작 지시 정보, 성능 측정 제어 지시 정보

Description

반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법{SEMICONDUCTOR INTEGRATED CIRCUIT, DEBUG/TRACE CIRCUIT, AND SEMICONDUCTOR INTEGRATED CIRCUIT OPERATION OBSERVING METHOD}
본 발명은, 반도체 집적 회로의 동작 트레이스에 관한 것이다.
최근의 내장 기기의 복잡화에 수반하여, 그 개발 단계에서 효율적으로 디버그를 행하는 기술의 확립이 요망되고 있다. 대부분의 내장 기기의 디버그에서는, 인서킷 에뮬레이터(incircuit emulator; ICE)를 이용하여 브레이크 포인트를 설정하는 방법, 스텝 실행을 행하는 방법 등이 이용되고 있다. 그러나, 이들 방법은, 시스템에 리얼타임성(real-time properties)이 요구되는 경우에 주변 회로와의 타이밍의 정합이 취해질 수 없어서, 이용할 수 없는 경우가 많다.
이와 같은 상황 하에서, 기기 내부의 동작 트레이스를 행하여, 그 상태 변화나 거동을 관측하는 것의 중요성이 증가하고 있다.
한편, 내장 기기에서는 제조 코스트 삭감을 위해서 내장 메모리 용량이나 CPU 성능의 여유도가 적은 것도 많다. 그 때문에, 서버나 퍼스널 컴퓨터로 대표되는 일반적인 컴퓨터 기기에서 이용되고 있는 바와 같은, 소프트웨어 처리에 의해 동작 로그를 보존하는 방법은 내장 기기에는 만족스럽게 사용할 수 없는 경우가 많 다. 또한, 내장 기기에는 용도특화한 시스템 LSI이 종종 이용되고, 그 때문에, 소프트웨어 처리만으로는 관측할 수 없는, 버스의 거동, 주변 회로의 거동 등의 관측이 중요한 경우가 많다.
이 때문에, 일반적으로는 시스템 LSI의 동작 상태를 조사하는 신호를 모니터 단자로부터 취출하는 기술이 제공되고, 모니터 단자를 이용하여 동작 상태의 변화를 트레이스 데이터로서 보존하고, 해석하는 방법이 유효하게 된다. 이와 같은 방법을 채용하는 기술이 일본 특개 2002-24201호 공보(이하 "문헌 1"이라고 함)에 개시되어 있다.
도 1은 문헌 1에 기재된 시스템 LSI의 내부 구성을 도시하는 블록도이다. 도 1의 시스템 LSI는, MPU 코어(제어 회로)(91)와, MPU 코어(91)를 동작시키기 위한 프로그램을 저장한 내장 RAM(Random Access Memory, 기억 회로)(92)과, MPU 코어(91)와 신호의 송수신을 행하는 주변 회로(93)를 구비하고 있다. 또한, 시스템 LSI에는, 시스템 LSI 주변 장치(5)가 접속되어 있어, 양자는 서로 신호의 송수신을 행한다. 내장 RAM(92)에는, MPU 코어(91)를 동작시키기 위한 프로그램 외에, 디버그 지원 기능 프로그램도 내장되어 있다.
또한, 신호 선택 회로(931)를 내장한 디버그 지원 회로(914)가 MPU 코어(91)의 내부에 설치되어 있다. 주변 회로(93)의 내부에는 신호 선택 회로(932)가 설치되어 있다. 또한 최종적인 모니터 신호를 선택하는 신호 선택 회로(933)가 설치되어 있다. 그리고, 각 신호 선택 회로(931∼933)의 선택 동작을 모니터 신호 제어 회로(4)가 제어한다.
문헌 1의 시스템 LSI는, MPU 코어(91)의 내부 신호들 중 어느 하나를 선택하는 신호 선택 회로(931)와, 주변 회로(93)의 내부 신호들 중 어느 하나를 선택하는 신호 선택 회로(932)와, 이들 신호 선택 회로(931, 932) 중 어느 하나의 출력을 선택하는 신호 선택 회로(933)를 갖고, 각 신호 선택 회로(931∼933)의 선택 동작을 필요에 따라서 임의로 절환할 수 있다. 그 때문에, 시스템 LSI의 내부 동작을 리얼타임으로 상세하게 해석할 수 있다. 또한, 모니터용의 단자가 한정되어 있는 경우라도 복수의 모니터 신호를 용이하게 절환하여 출력할 수 있다.
<발명의 개시>
그러나, 문헌 1에 개시된 트레이스 시스템에는 몇가지의 문제가 있다.
문헌 1에 개시된 트레이스 시스템은, 트레이스 데이터를 LSI의 외부에 출력하는 것을 전제로 하고 있어, 단위 시간당의 관측 가능 트레이스 데이터량이 외부와의 통신선의 속도나 내장 버퍼 용량 등에 의해 제한된다. 그 때문에, 내부의 동작 속도가 빠른 시스템 등에서 원하는 동작을 확인할 수 없는 경우가 생기는 경우가 있다.
또한, 문헌 1에 개시된 트레이스 시스템은, 관측 대상 신호를 선택된 것에 한정하여 트레이스 데이터량을 삭감하는 방법을 채용하고 있기 때문에, 관측 대상의 모든 신호의 거동으로부터 특정 조건의 판단을 하고자 하는 경우에 그것이 불가능하다.
본 발명의 일 목적은, 접속하는 통신선의 속도나 내장 버퍼 용량의 영향을 받지 않고, 관측 대상의 임의의 신호를 관측하면서 원하는 동작을 관측하는 것을 가능하게 하는 수단을 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명의 일 양태에 따른 반도체 집적 회로는, 디버그용의 기능을 구비한 반도체 집적 회로로서,
연속적인 소정의 동작을 실행하여, 상기 동작에 연관되는 이벤트를 연속적으로 발생시키는 주기능 구성부와,
관측이 요구되는 이벤트를 일련의 이벤트에 기초하여 특정하도록 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억하고 있고 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 - , 상기 주기능 구성부에서 발생하는 이벤트와 상기 제어 정보 리스트 내의 1개의 엔트리의 검출 조건 지시 정보를 비교하고, 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 행하여, 상기 이벤트를 특정하는 디버그·트레이스 회로를 갖고 있다.
본 발명의 디버그·트레이스 회로는, 연속적인 소정의 동작을 실행하여, 상기 동작에 연관되는 이벤트를 연속적으로 발생시키는 주기능 구성부를 구비한 반도체 집적 회로에 내장되는 디버그·트레이스 회로로서,
관측이 요구되는 이벤트를 일련의 이벤트에 기초하여 특정하도록 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억하는 제어 정보 리스트 유지부와 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 - ,
상기 주기능 구성부에서 발생하는 이벤트와 상기 제어 정보 리스트의 어느 1개의 엔트리의 검출 조건 지시 정보를 비교하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 실행하는 이벤트 검출부와,
상기 이벤트 검출부에 의한 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하는 제어부를 갖고 있다.
본 발명의 반도체 집적 회로 동작 관측 방법은, 연속적인 소정의 동작을 실행하여, 상기 동작에 연관되는 이벤트를 연속적으로 발생시키는 주기능 구성부를 구비한 반도체 집적 회로에 내장된 디버그·트레이스 회로에 의해 주기능 구성부의 동작을 관측하기 위한 반도체 집적 회로 동작 관측 방법으로서,
관측이 요구되는 이벤트를 일련의 이벤트에 기초하여 특정하도록 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억해 놓는 단계와 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 - ,
상기 주기능 구성부에서 발생하는 이벤트와 상기 제어 정보 리스트 내의 1개의 엔트리의 검출 조건 지시 정보를 비교하고, 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 행하여, 상기 이벤트를 특정하여 관측을 행하는 단계를 포함한다.
도 1은 문헌 1에 개시된 트레이스 시스템의 구성을 도시하는 블록도.
도 2는 제1 실시 형태의 구성을 도시하는 블록도.
도 3은 제1 실시 형태에서의 제어 정보 리스트의 구성도.
도 4는 제1 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트.
도 5는 제2 실시 형태의 구성을 도시하는 블록도.
도 6은 제2 실시 형태에서의 제어 정보 리스트의 구성도.
도 7은 제2 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트.
도 8은 제3 실시 형태의 구성을 도시하는 블록도.
도 9는 제3 실시 형태에서의 제어 정보 리스트의 구성도.
도 10은 제3 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트.
도 11은 제1 및 제2 실시예에 공통되는 제어부 및 이벤트 검출부의 구체적 구성을 도시하는 블록도.
도 12는 제1 실시예에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트.
도 13은 제1 실시예에서의 제어 정보 리스트의 구성도.
도 14는 제2 실시예에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트.
도 15는 제2 실시예에서의 제어 정보 리스트의 구성도.
<발명을 실시하기 위한 최량의 형태>
본 발명의 실시 형태에 대하여 도면을 참조하여 상세하게 설명한다.
(제1 실시 형태)
도 2는 본 발명의 제1 실시 형태에 따른 디버그·트레이스 시스템의 전체 구성을 도시하는 블록도이다. 도 2를 참조하면, 시스템 LSI(1)는, 주기능 구성부(2)와, 디버그·트레이스 회로(3)를 포함하고 있다. 여기서 말하는 시스템 LSI는, SiP(System in Package), MCP(Multi Chip Module), PoP(Package on Package) 등과 같이 복수의 칩을 집적하는 형태의 것을 포함한다. 또한, 시스템 LSI 내부의 통신의 용량은 LSI 외부와의 통신의 용량에 비해 충분히 큰 일반적인 구조인 것으로 한다. 주기능 구성부(2)는, 시스템 LSI(1)의 본래의 원하는 기능을 실현하는 회로이며, 일반적인 예로서 MPU 코어(21) 및 주변 회로(22)로 구성되어 있다. 디버그·트레이스 회로(3)는, 이벤트 검출부(31), 제어부(32), 및 제어 정보 리스트 유지부(33)를 갖고 있다. 제어 정보 리스트 유지부(33)는 제어 정보 리스트(4)를 유지 한다.
도 3은 제1 실시 형태에서의 제어 정보 리스트의 구성도이다. 도 3을 이용하여, 제어 정보 리스트 유지부(33)에 유지되는 제어 정보 리스트(4)의 상세에 대하여 설명한다.
제어 정보 리스트(4)는 복수의 엔트리(41)가 배열된 리스트이며, 각 엔트리(41)는 검출 조건 지시부(42)와 동작 지시부(43)로 구성되어 있다. 검출 조건 지시부(42)에는, 관측 대상으로 하는 이벤트의 검출 조건이 기재되어 있다. 발생한 이벤트와 검출 조건의 비교에 의해, 검출 조건에 해당하는 이벤트(대상 이벤트)를 검출할 수 있다. 동작 지시부(43)에는, 대상 이벤트를 검출한 경우의 제어부(32)의 동작이 기재되어 있다. 제어부(32)의 동작으로서, 데이터의 출력에 관한 지시, 다음에 참조하는 엔트리의 변경에 관한 지시, 측정을 종료하는 지시, LSI의 외부(이하, 간단히 「외부」라고 함)에 데이터를 출력하는 지시, 외부에 제어 정보를 출력하는 지시 등을 기재할 수 있다.
도 4는 제1 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트이다. 도 4의 플로우차트를 이용하여, 본 실시 형태의 디버그·트레이스 시스템의 동작에 대하여 설명한다.
우선, 외부로부터의 관측 개시 지시를 제어부(32)가 수신하면, 제어부(32)는 자신이 유지하는, 제어 정보 리스트(4)로부터의 엔트리 읽어내기 위치를 초기화한다(스텝 S1). 이 때, 통상은 제어 정보 리스트(4)의 선두 엔트리의 값을 지정하지만, 용법에 따라서 그 밖의 값으로 하여도 된다.
그 후, 제어부(32)는, 제어 정보 리스트 유지부(33)에서 유지되는 제어 정보 리스트(4)로부터 엔트리(41)를 1개 읽어내고, 그 값을 내부에 유지한다(스텝 S2). 다음으로, 제어부(32)는 읽어낸 엔트리(41)의 검출 조건 지시부(42)에 따라서 이벤트 검출부(31)의 검출 조건을 설정한다(스텝 S3).
그 후, 이벤트 검출부(31)는 설정된 검출 조건과 이벤트의 비교를 계속하고, 이벤트 발생을 통지하는 조건에 해당한다는 이벤트가 검출되면, 이벤트 검출 통지를 제어부(32)에 대하여 행한다(스텝 S4). 이벤트 발생을 통지하는 조건이란, 이벤트의 발생을 제어부(32)에 통지할지의 여부를 나타내는 조건이다. 예를 들면, 검출 조건에 해당하였을 때만 이벤트의 발생을 통지하는 것으로 하여도 되거나 검출 조건에 해당하였을 때나 해당하지 않았을 때의 어느 경우에서든 이벤트의 발생을 통지하는 것으로 하여도 된다. 또한, 이벤트 검출부(31)는 이벤트의 상세 정보를 내부에 유지한다.
그 후, 제어부(32)는 엔트리(41)의 동작 지시부(43)를 참조하여(스텝 S5), 동작 지시부(43)의 지시 내용에 따라서 제어 동작을 행한다(스텝 S6). 이 제어 동작은, 이벤트 검출부(31)로부터 이벤트의 상세 정보를 읽어내어 이벤트 데이터로서 출력하는 것, 제어 정보 리스트(4)에 기재되어 있는 유저 데이터를 출력하는 것, 에러 통지나 정상 종료 통지로 대표되는 제어 정보를 출력하는 것 등이다.
또한, 제어부(32)는, 엔트리(41)의 동작 지시부(43)의 지시 내용에 종료 지시가 포함되어 있는지의 여부를 판정한다(스텝 S7). 지시 내용에 종료 지시가 포함되어 있으면, 제어부(32)는 측정을 종료한다. 지시 내용에 종료 지시가 포함되 어 있지 않으면, 제어부(32)는 필요에 따라서 엔트리 읽어내기 위치를 변경하고(스텝 S8), 다음 엔트리(41)의 읽어내기로 되돌아간다.
또한, 여기서는 설명을 평이하게 하기 위해서 동작을 한번에 1개씩 실행하는 형태로 기술하였지만, 동작의 한층 더한 고속화를 위해서 복수의 스텝을 동시에 실행하여도 되거나 파이프라인 방식에 기초한 어셈블리 라인 방식으로 실행하여도 된다.
본 실시 형태에 따르면, 확인하고자 하는 일련의 동작에 대응하는 복수의 엔트리(41)를 포함하는 제어 정보 리스트(4)를 미리 준비해 놓고, 이벤트의 검출 조건이나 제어를 제어 정보 리스트(4)에 따라서 차례차례로 변경하므로, 수많은 신호변화에 기초하여 특정한 이벤트가 특정한 순서로 발생한 것을 내부에서 확인하고, 트레이스 데이터를 기록할 수 있다. 그 결과, 시스템 LSI의 내부에서의 이벤트 계열의 추적이 가능하게 되므로, 통신선의 속도나 내장 버퍼 용량에 영향을 받지 않고, 고속의 관측 대상의 임의의 신호를 관측하면서 원하는 동작을 확인할 수 있다.
(제2 실시 형태)
다음으로, 본 발명의 제2 실시 형태에 대하여 도면을 참조하여 상세하게 설명한다.
도 5는 본 발명의 제2 실시 형태에 따른 전체 구성을 도시하는 블록도이다. 본 실시 형태의 시스템 LSI는, 주기능 구성부(21)가, MPU 코어(21), DSP, 액셀러레이터 등 소정의 일련의 동작을 각각 실행하는 동작 유닛으로 구성되어 있다. 또한, 본 실시 형태의 시스템 LSI는, 도 2에 도시한 제1 실시 형태 외에, 디버그·트 레이스 회로(3)에 동작 유닛 제어부(34)를 갖고 있다. 동작 유닛 제어부(34)는, 주기능 구성부(2) 내의 동작 유닛을 제어하기 위한 신호를 송신한다.
도 6은 제2 실시 형태에서의 제어 정보 리스트의 구성도이다. 도 6의 제어 정보 리스트 구성도에 도시한 바와 같이, 제어 정보 리스트(4)의 동작 지시부(43) 내에는 동작 유닛 제어 지시부(431)가 있다. 동작 유닛 제어 지시부(431)에는, 동작 유닛 제어부(34)에 대하여, 주기능 구성부(2) 내의 어느 동작 유닛에 지시를 행할지, 어떤 제어 지시를 행할지, 혹은 지시를 행하지 않을지 등에 관한 정보가 기재된다. 제어 지시로서는 예를 들면 정지 지시나 기동 지시 등이 있다.
도 7은 제2 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트이다. 도 7의 플로우차트를 이용하여, 제2 실시 형태의 디버그·트레이스 시스템의 동작에 대하여 설명한다.
우선, 외부로부터의 관측 개시 지시를 제어부(32)가 수신하면, 제어부(32)는 자신이 유지하는, 제어 정보 리스트로부터의 엔트리 읽어내기 위치를 초기화한다(스텝 S11). 이 때, 통상은 제어 정보 리스트의 선두 이벤트를 지정하지만, 용법에 따라서 그 밖의 값으로 하여도 된다.
그 후, 제어부(32)는, 제어 정보 리스트 유지부(33)에서 유지되는 제어 정보 리스트(4)로부터 엔트리(41)를 1개 읽어내고, 그 값을 내부에 유지한다(스텝 S12). 다음으로, 제어부(32)는 읽어낸 엔트리(41)의 검출 조건 지시부(42)에 따라서, 이벤트 검출부(31)의 검출 조건을 설정한다(스텝 S13).
그 후, 이벤트 검출부(31)는 설정된 검출 조건과 이벤트의 비교를 계속하고, 이벤트가 이벤트 발생을 통지하는 조건에 해당하면, 이벤트 검출 통지를 제어부(32)에 대하여 행한다(스텝 S14). 이벤트 발생을 통지하는 조건이란, 이벤트의 발생을 제어부(32)에 통지할지의 여부의 조건이다. 예를 들면, 이벤트가 검출 조건에 해당하였을 때만 이벤트의 발생을 통지하는 것으로 하여도 되거나 이벤트가 검출 조건에 해당하였을 때와 해당하지 않았을 때의 양방에서 이벤트의 발생을 통지하는 것으로 하여도 된다. 또한, 이벤트 검출부(31)는 이벤트의 상세 정보를 내부에 유지한다.
그 후, 제어부(32)는 엔트리(41)의 동작 지시부(43)를 참조하여(스텝 S15), 동작 유닛에 대한 제어 지시가 있는지의 여부를 판정한다(스텝 S16). 동작 유닛에 대한 제어 지시가 있으면, 제어부(32)는 동작 유닛 제어 지시를 동작 유닛 제어부(34)에 송신한다. 동작 유닛 제어부(34)는, 수신한 동작 유닛 제어 지시의 지시 내용에 따라서 주기능 구성부(2) 내의 동작 유닛에 대하여 제어 동작을 행한다(스텝 S17). 동작 유닛에 대한 제어로서는, 동작 유닛의 정지, 기동, 상태 검사 등이 있다.
스텝 S16의 판정에서 동작 유닛에 대한 제어 지시가 없었을 때, 혹은 스텝 S17의 제어 동작 후, 제어부(32)는, 엔트리(41)의 동작 지시부(43)의 지시 내용에 따라서, 그 밖의 제어 동작을 행한다(스텝 S18). 그 밖의 제어 동작이란, 이벤트 검출부(31)로부터 이벤트의 상세 정보를 읽어내어 데이터 출력을 행하는 것, 제어 정보 리스트(4)에 기재되어 있는 유저 데이터를 출력하는 것, 에러 통지나 정상 종료 통지로 대표되는 제어 출력을 실시하는 것 등이다.
또한, 제어부(32)는, 엔트리(41)의 동작 지시부(43)의 지시 내용에 종료 지시가 포함되어 있는지의 여부를 판정한다(스텝 S19). 지시 내용에 종료 지시가 포함되어 있으면, 제어부(32)는 측정을 종료한다. 지시 내용에 종료 지시가 포함되어 있지 않으면, 제어부(32)는 필요에 따라서 엔트리 읽어내기 위치를 변경하고(스텝 S20), 다음 엔트리의 읽어내기로 되돌아간다.
또한, 여기서는 설명을 평이하게 하기 위해서 동작을 한번에 1개씩 실행하는 형태로 기술하였지만, 동작의 고속화를 위해서 복수의 스텝을 동시에 실행하여도 되거나 파이프라인 방식에 기초하여 어셈블리 라인 방식으로 실행하여도 된다.
디버그에서는 프로그램 실행 중 임의의 이벤트가 발생한 시점의 메모리 내용 등의 상황을 확인하고자 하는 경우가 있다. 그러나, 동작 유닛이 동작 중이면, 그 동작이 끝나고 확인을 할 때에, 확인하고자 하는 개소의 메모리 내용의 값이 변경되어 있을 가능성이 있다. 또한, 단순하게 임의의 이벤트의 발생을 기준으로 관측하면 관측하고자 하는 이벤트가 아닌 것이 포함되게 되므로 대상 외의 이벤트의 배제가 중요한 경우가 있다.
따라서, 본 실시 형태에서는, 제1 실시 형태와 마찬가지의 이벤트 계열의 추적 기능 외에, 동작 유닛 제어부(34)를 더 구비하고, 제어 정보 리스트(4) 내의 동작 유닛 제어 지시부(431)를 도입하여, 확인하고자 하는 이벤트에 맞춘 특정한 동작 유닛에 대한 제어 지시를 포함하는 제어 정보 리스트(4)를 이용한다. 이에 의해, 동작 유닛을 관측에 알맞도록 제어할 수 있다. 예를 들면 대상으로 되는 이벤트가 발생한 직후에 임의의 동작 유닛을 정지할 수 있다. 따라서, 임의의 이벤트 가 발생한 직후의 메모리 내용을 확인하고, 그 동작 유닛에 관한 데이터를 취득할 수 있다.
(제3 실시 형태)
도 8은 본 발명의 제3 실시 형태에 따른 전체 구성을 도시하는 블록도이다. 도 8을 참조하면, 본 실시 형태의 시스템 LSI는, 도 2에 도시한 제1 실시 형태 외에, 성능 측정부(35)를 갖고 있다. 성능 측정부(35)는, 입력된 지시 정보에 따라서, 이벤트의 발생 빈도, 버스 트래픽량, 지연값 등의 성능을 측정한다.
도 9는 제3 실시 형태에서의 제어 정보 리스트의 구성도이다. 도 9의 제어 정보 리스트 구성도에 도시한 바와 같이, 제어 정보 리스트(4)의 동작 지시부(43) 내에는 성능 측정 제어 지시부(432)가 있다. 성능 측정 제어 지시부(432)에는, 성능 측정을 제어하기 위해 성능 측정부(35)에 대한 지시 정보가 기재된다. 지시 정보에는, 예를 들면, 어떤 성능 측정을 행할지를 나타내는 파라미터를 설정하는 지시, 성능 측정의 개시 또는 종료의 지시가 있다.
도 10은 제3 실시 형태에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트이다. 도 10의 플로우차트를 이용하여, 제3 실시 형태의 디버그·트레이스 시스템의 동작에 대하여 설명한다.
우선, 외부로부터의 관측 개시 지시를 제어부(32)가 수신하면, 제어부(32)는 자신이 유지하는, 제어 정보 리스트로부터의 엔트리 읽어내기 위치를 초기화한다(스텝 S21). 이 때, 통상은 제어 정보 리스트의 선두의 엔트리를 지정하지만, 용법에 따라서 그 밖의 값으로 하여도 된다.
그 후, 제어부(32)는, 제어 정보 리스트 유지부(33)에서 유지되는 제어 정보 리스트(4)로부터 엔트리(41)를 1개 읽어내고, 그 값을 내부에 유지한다(스텝 S22). 다음으로, 제어부(32)는 읽어낸 엔트리(41)의 검출 조건 지시부(42)에 따라서 이벤트 검출부(31)의 검출 조건을 설정한다(스텝 S23).
그 후, 이벤트 검출부(31)는 설정된 검출 조건과 이벤트의 비교를 계속하여, 이벤트가 이벤트 발생을 통지하는 조건에 해당하면, 이벤트 검출 통지를 제어부(32)에 대하여 행한다(스텝 S24). 이벤트 발생을 통지하는 조건이란, 이벤트의 발생을 제어부(32)에 통지할지의 여부의 조건이다. 예를 들면, 이벤트가 검출 조건에 해당하였을 때만 이벤트의 발생을 통지하는 것으로 하여도 되거나 이벤트가 검출 조건에 해당하였을 때와 해당하지 않았을 때의 경우 모두에서 이벤트의 발생을 통지하는 것으로 하여도 된다. 또한, 이벤트 검출부(31)는 이벤트의 상세 정보를 유지한다.
그 후, 제어부(32)는 엔트리(41)의 동작 지시부(43)를 참조하여(스텝 S25), 성능 측정에 관한 지시 정보가 있는지의 여부를 판정한다(스텝 S26).
성능 측정의 지시 정보가 있으면, 제어부(32)는, 성능 측정의 지시 정보를 성능 측정부(35)에 송신한다. 성능 측정부(35)는, 제어부(32)로부터 수신한 지시 정보의 내용에 따라서 성능 측정의 제어를 행한다(스텝 S27). 성능 측정의 제어는, 예를 들면, 측정 대상이나 측정 항목의 설정, 측정의 개시나 종료 등이다.
스텝 S26의 판정에서 성능 측정의 제어 지시가 없을 때, 혹은 스텝 S27의 제어 동작 후, 제어부(32)는, 엔트리(41)의 동작 지시부(43)의 지시 내용에 따라서, 그 밖의 제어 동작을 행한다(스텝 S28). 그 밖의 제어 동작이란, 이벤트 검출부(31)로부터 이벤트의 상세 정보를 읽어내어 데이터 출력을 행하는 것, 제어 정보 리스트(4)에 기재되어 있는 유저 데이터를 출력하는 것, 에러 통지나 정상 종료 통지로 대표되는 제어 출력을 실시하는 것 등이다.
또한, 제어부(32)는, 엔트리(41)의 동작 지시부(43)의 지시 내용에 종료 지시가 포함되어 있는지의 여부를 판정한다(스텝 S29). 지시 내용에 종료 지시가 포함되어 있으면, 제어부(32)는 측정을 종료한다. 지시 내용에 종료 지시가 포함되어 있지 않으면, 제어부(32)는 필요에 따라서 엔트리 읽어내기 위치를 변경하고(스텝 S30), 다음 엔트리의 읽어내기로 되돌아간다.
또한, 여기서는 설명을 평이하게 하기 위해서 동작을 한번에 1개씩 실행하는 형태로 기술하였지만, 동작의 고속화를 위해서 복수의 스텝을 동시에 실행하여도 되거나 파이프라인 방식에 기초하여 어셈블리 라인 방식으로 실행하여도 된다.
프로그램의 디버그나 그 성능의 튜닝에서는, 프로그램 실행 중의 임의의 이벤트의 발생에 따라서 측정 대상이나 측정 아이템을 변경하고자 하는 경우가 있다. 또한, 임의의 이벤트의 발생에 따라서 측정을 개시 혹은 종료하고자 하는 경우가 있다. 또한, 단순하게 임의의 이벤트의 발생에 기초하여 측정을 행하면, 측정하고자 하는 데이터가 아닌 것이 측정되게 되는 경우가 있다. 그 경우, 어떻게든 해서 측정 대상 외의 이벤트를 배제하는 것이 중요하다.
따라서, 본 실시 형태에서는, 제1 실시 형태와 마찬가지의 이벤트 계열의 추적 기능 외에, 성능 측정부(35)를 더 구비하고, 제어 정보 리스트(4) 내에 성능 측 정 제어 지시부(432)를 도입하여, 확인하고자 하는 이벤트에 맞춘 성능 측정에 관한 제어 지시를 포함하는 제어 정보 리스트(4)를 이용한다. 이에 의해, 이벤트에 따라서 측정 동작을 제어할 수 있다. 예를 들면 대상으로 되는 이벤트가 발생한 직후에 측정을 개시하거나, 종료하거나 할 수 있다. 또한, 대상으로 되는 이벤트가 발생한 직후에 측정 대상이나 측정 내용을 변경할 수도 있다.
(제1 실시예)
다음으로, 전술한 실시 형태의 구체적인 실시예에 대하여 설명한다.
도 11은 이벤트 검출부(31) 및 제어부(32)의 구체적 구성을 도시하는 블록도이다. 도 11을 참조하면, 이벤트 검출부(31)는, 검출 조건 유지부(311), 조건 판정부(312), 및 이벤트 유지부(313)로 구성되어 있다.
검출 조건 유지부(311)는, 이벤트의 검출 조건을 유지한다. 조건 판정부(312)는, 주기능 구성부(2)로부터 제어부(32)에의 신호를 관측하여, 각각의 이벤트가 검출 조건 유지부(311)에 유지되어 있는 검출 조건에 해당하는지의 여부를 판정한다. 이벤트가 검출 조건에 해당하면, 조건 판정부(312)는 제어부(32)에 이벤트 검출 통지를 보낸다. 이벤트 유지부(313)는, 조건 판정부(312)에서 검출된 이벤트의 상세를 유지한다.
이 구성에 의해, 이벤트 검출부(31)는, 제어부(32)로부터 설정된 검출 조건을 검출 조건 유지부(311)에 유지하고, 그 검출 조건과 일치하는 이벤트가 발생하면, 조건 판정부(312)에서 이벤트의 발생을 검출하고, 이벤트 유지부(313)에서 그 이벤트의 상세를 유지한다.
한편, 제어부(32)는, 제어 실행부(321), 엔트리 읽어내기 위치 유지부(322), 및 엔트리 정보 유지부(323)로 구성되어 있다.
제어 실행부(321)는, 제어 정보 리스트(4)에 따른 제어를 실행하고, 또한 그것에 연관되는 각 부(portion)에의 동작 지시를 행한다. 엔트리 읽어내기 위치 유지부(322)는, 제어 정보 리스트 유지부(33)로부터 다음에 읽어낼, 제어 정보 엔트리(4)의 위치를 유지한다. 엔트리 정보 유지부(323)는, 제어 정보 리스트 유지부(33)로부터 읽어낸 엔트리(4)의 정보를 보유한다.
이 구성에 의해 제어부(32)는, 엔트리 읽어내기 위치 유지부(322)에 유지되어 있는 위치 정보로 나타내어져 있는 엔트리(4)를 제어 정보 리스트 유지부(33)로부터 읽어내어 엔트리 정보 유지부(323)에 유지하고, 엔트리 정보 유지부(323)에 유지된 엔트리(4)에 따른 제어 동작을 실행한다.
도 12는 제1 실시예에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트이다. 도 13은 제1 실시예에서의 제어 정보 리스트의 구성도이다.
도 12 및 도 13을 이용하여 본 실시예에서의 동작을 설명한다.
또한, 도 12의 스텝 S32∼스텝 S34는 도 4의 스텝 S2에 상당한다. 도 12의 스텝 S35∼스텝 S36은 도 4의 스텝 S3에 상당한다. 또한, 도 12의 스텝 S37∼스텝 S40은 도 4의 스텝 S4에 상당한다.
도 13의 제어 정보 리스트(4)의 예에서는, 동작 지시부(43) 내에, 히트시 제어 지시부(hit control indicator)(433), 히트시 출력 지시부(434), 미스히트시 제어 지시부(mishit control indicator)(438), 및 미스히트시 출력 지시부(439)가 포 함되어 있다.
히트시 제어 지시부(433)는, 검출 조건에 해당하는 이벤트를 검출하였을 때 (히트시)의 디버그·트레이스 회로(3) 내부의 동작을 규정하는 동작 지시이다. 히트시 출력 지시부(434)는, 히트시의 이벤트 데이터를 출력할 것인지의 여부를 설정하는 정보이다.
미스히트시 제어 지시부(438)는, 검출 조건 이외의 이벤트를 검출하였을 때(미스히트시)의 동작을 규정하는 동작 지시이다. 미스히트시 출력 지시부(439)는, 미스히트시의 이벤트 데이터를 출력할 것인지의 여부를 설정하는 정보이다.
또한, 여기서는 단순한 예로서 히트시 제어 지시부(433) 및 히트시 출력 지시부(434)가 1개씩 도시되어 있다. 그러나, 본 발명이 이에 한정되는 것은 아니다. 다른 예로서, 검출 조건 지시부(42) 내에 복수의 검출 조건을 설정하고, 동작 지시부(43)에 복수의 히트시 제어 지시부(433) 및 히트시 출력 지시부(434)를 설정할 수 있는 엔트리(41)의 구성으로 하여도 된다. 그렇게 하면, 검출된 이벤트의 내용에 따라서 상이한 처리를 행하도록 하는 엔트리(41)의 설정이 가능하게 된다.
도 12를 참조하면, 우선, 외부로부터 제어부(32)에 관측 개시 지시가 입력 되면, 제어 실행부(321)가 엔트리 읽어내기 위치 유지부(322)에 초기값을 설정한다(스텝 S31). 엔트리 읽어내기 위치 유지부(322)에 초기값이 설정됨으로써, 제어 정보 리스트(4)로부터의 엔트리를 읽어내는 위치가 초기화된다. 이 때, 통상은 제어 정보 리스트(4)의 선두를 지정하지만, 용법에 따라서 그 밖의 값으로 하여도 된다.
그 후, 제어부(32)는, 엔트리 읽어내기 위치 유지부(322)로부터 제어 정보 리스트 유지부(33)에 읽어내기 위치를 통지한다(스텝 S32). 제어 정보 리스트 유지부(33)는, 통지된 읽어내기 위치에 해당하는 엔트리(41)를 출력한다(스텝 S33). 제어부(32)는, 제어 정보 리스트 유지부(33)로부터 출력된 엔트리(41)를 내부의 엔트리 정보 유지부(323)에 보존한다(스텝 S34).
다음으로, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 검출 조건 지시부(42)를 참조하여(스텝 S35), 거기에 나타내어져 있는 검출 조건을 이벤트 검출부(31)의 검출 조건 유지부(311)에 기입한다(스텝 S36).
그 후, 주기능 구성부(2)로부터의 신호가 변화하면(스텝 S37), 이벤트 검출부(31) 내의 조건 판정부(312)가, 신호의 관측 결과와 검출 조건 유지부(311)에 유지되어 있는 검출 조건에 기초하여, 그 변화가 이벤트를 통지하는 조건에 해당하는지의 여부를 판정한다(스텝 S38). 이 통지 조건의 판정에서, 통지 조건에 해당하는 이벤트의 발생이 검출되지 않으면, 조건 판정부(312)는 스텝 S37로 되돌아가서, 통지 조건에 해당하는 이벤트가 발생될 때까지 동일한 처리를 반복한다. 한편, 통지 조건의 판정에서, 통지 조건에 해당하는 이벤트의 발생이 검출되면, 조건 판정부(312)는 제어부(32)에 이벤트 검출 통지를 보낸다(스텝 S39).
제어 실행부(321)는, 이벤트 검출 통지를 받으면(스텝 S40), 그것이 히트 통지인지 미스히트 통지인지를 판정한다(스텝 S41). 히트 통지란, 검출 조건에 해당하는 정보가 통지 조건에 포함되어 있는 경우에, 그 통지 조건(검출 조건)에 해당 한 것을 통지하는 정보이다. 미스히트 통지란, 검출 조건에 해당하지 않는 정보가 통지 조건에 포함되어 있는 경우에, 그 통지 조건에 해당한 것(즉, 검출 조건에 해당하지 않는 것)을 통지하는 정보이다.
히트 통지이면, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 히트시 제어 지시부(433)를 참조하여 실행할 제어의 내용을 취득하고, 히트시 출력 지시부(434)를 참조하여 이벤트 데이터를 출력할 필요가 있는지의 여부의 정보를 취득한다(스텝 S42). 한편, 미스히트 통지이면, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 미스히트시 제어 지시부(438)를 참조하여 실행할 제어의 내용을 취득하고, 미스히트시 출력 지시부(439)를 참조하여 이벤트 데이터를 출력할 필요가 있는지의 여부의 정보를 취득한다(스텝 S43).
계속해서, 제어 실행부(321)는, 스텝 S42 또는 스텝 S43에서 취득한 정보에 기초하여, 이벤트 데이터를 출력할 필요가 있는지의 여부를 판정한다(스텝 S44). 이벤트 데이터를 출력할 필요가 있으면, 제어 실행부(321)는 이벤트 검출부(31)의 이벤트 유지부(313)로부터, 유지되어 있는 이벤트의 상세 정보를 읽어내어, 필요한 정보를 이벤트 데이터로서 출력한다(스텝 S45).
스텝 S44의 판정에서 이벤트 데이터를 출력할 필요가 없었을 때, 또는 스텝 S45에서 이벤트 데이터를 출력하였을 때, 제어 실행부(321)는, 스텝 S42 또는 스텝 S43에서 취득한 제어 내용에 따라서 제어를 실행한다(스텝 S46). 제어 내용은 히트시 제어 지시부(433) 또는 미스히트시 제어 지시부(438)에 나타내어져 있다.
지시 내용이 「변경 없음」이면, 제어 실행부(321)는, 아무것도 하지 않고 스텝 S32로 되돌아간다. 지시 내용이 「다음으로」이면, 제어 실행부(321)는, 엔트리 읽어내기 위치 유지부(322)의 값을 다음 엔트리의 위치를 나타내는 값으로 재기입하고(스텝 S47), 스텝 S32로 되돌아간다. 지시 내용이 「종료」이면, 제어 실행부(321)는, 종료 통지를 외부에 출력하고(스텝 S48), 측정을 종료한다.
또한, 여기서는 설명을 평이하게 하기 위해서 동작을 한번에 1개씩 실행하는 형태로 기술하였지만, 동작의 고속화를 위해서 복수의 스텝을 동시에 실행하여도 되거나 파이프라인 방식에 기초하여 어셈블리 라인 방식으로 실행하여도 된다.
또한, 도 12에 도시한 동작은, 이벤트 검출부(31)의 동작을 어떻게 규정할지에 따라서, 실행되는 스텝의 일부에 차이가 생긴다.
예를 들면, 이벤트 검출부(31)를, 스텝 S38에서 관측 결과가 검출 조건에 해당하였을 때만 스텝 S39에서 이벤트 검출 통지를 보낸다고 하는 동작으로 규정하면, 제어 실행부(321) 측에서는 스텝 S41로부터 스텝 S43으로 이행하는 동작은 발생하지 않는다.
한편, 예를 들면, 이벤트 검출부(31)를, 스텝 S38에서 관측 결과가 검출 조건에 해당하여도 해당하지 않아도 이벤트 검출 통지를 보낸다고 하는 동작으로 규정하면, 이벤트 검출부(31)가, 「아니오」의 경로에서 스텝 S37로 되돌아간다고 하는 반복 동작은 발생하지 않는다.
대안적으로, 히트의 통지 조건과 미스히트의 통지 조건을 별개로 규정하고, 이벤트 검출부(31)는, 어느 하나에 해당하였을 때에 이벤트 검출 통지를 제어 부(32)에 보내기로 하면, 이벤트 검출부(31) 및 제어부(32)는 모두 도 12에 도시한 모든 스텝을 실행할 가능성이 있다.
또한, 통지 조건을 규정하고, 이벤트 검출부(31)는, 그 통지 조건에 해당하였을 때에 이벤트 검출 통지를 제어부(32)에 보내는 것으로 하고, 그 통지 조건 내에서 히트 통지로 하는 범위를 규정하는 것으로 하여도, 이벤트 검출부(31) 및 제어부(32)는 모두 도 12에 도시한 모든 스텝을 실행할 가능성이 있다.
다음으로, 본 실시예에서의 관측 방법에 대하여, 도 13에 도시한 구체적인 제어 정보 리스트(4)의 예를 이용하여 설명한다. 여기서는, 주기능 구성부(2)로부터의 신호가 검출 조건인 설정값과 일치한 것을, 검출 조건에 해당하는 이벤트로서 취급하는 예를 나타낸다. 이것은 액세스 관련의 이벤트에 상당한다. 예를 들면, 버스, 메모리, 혹은 주변 회로의 레지스터에의 특정한 액세스가 있었던 것을, 검출 조건에 해당하는 이벤트로 하는 것이 있다. 액세스 관련의 이벤트에서는, 특정한 어드레스에의 액세스, 데이터가 특정한 값인 액세스, 특정한 동작 유닛으로부터의 액세스 등을 검출할 이벤트로서 설정할 수 있다. 또한, 다른 예로서, 타이머, 카운터, 혹은 레지스터의 값이 소정값으로 된 것을, 검출 조건에 해당하는 이벤트로 하는 것이 있다.
또한, 검출 조건으로서 특정한 1개의 값을 설정하는 것으로 하여도 되지만 다른 방법이어도 된다. 다른 예로서, 상한값과 하한값으로 범위를 설정하는 방법이 있다. 또한, 복수의 비트로 이루어지는 특정한 설정값을 정하고, 설정값의 각 비트에 대하여 관측 신호와의 비교 시 유효로 할지 무효로 할지의 여부를 판정하도 록 마스크값으로 설정하는 방법도 생각된다. 또한, 액세스원(accessor)마다 비교를 유효로 할지 무효로 할지를 판정하도록 비트맵으로 설정하는 방법도 생각된다. 또한, 전술한 복수의 방법을 병용할 수도 있다.
도 13을 참조하면, 제어 정보 리스트(4)에는 3개의 엔트리(411, 412, 413)가 포함되어 있다.
엔트리(411)의 검출 조건 지시부(42)에는 「어드레스 A에의 버스 액세스」가 설정되어 있다. 따라서 어드레스 A에의 버스 액세스가 있으면 엔트리(411)의 이벤트로서 검출되게 된다. 마찬가지로, 엔트리(412)의 검출 조건 지시부(42)에는 「어드레스 B의 버스 액세스」가 설정되어 있다. 엔트리(413)의 검출 조건 지시부(42)에는 「어드레스 C에의 버스 액세스」가 설정되어 있다.
또한, 엔트리(411) 및 엔트리(412)의 히트시 제어 지시부(433)에는 「다음으로」가 설정되어 있다. 「다음으로」는, 다음 엔트리의 감시로 진행하는 것을 나타낸다. 따라서, 예를 들면 엔트리(411)의 이벤트가 히트하면, 다음 엔트리(412)의 감시로 이행하게 된다. 마찬가지로, 엔트리(412)의 이벤트가 히트하면, 다음 엔트리(413)의 감시로 이행하게 된다.
또한, 엔트리(413)의 히트시 제어 지시부(433)에는 「종료」가 설정되어 있다. 「종료」는, 거기에서 측정을 종료하는 것을 나타낸다. 따라서, 엔트리(413)의 이벤트가 히트하면, 거기에서 측정이 종료되게 된다.
또한, 엔트리(411∼413)의 히트시 출력 지시부(434)에는 「출력」이 설정되어 있다. 「출력」은, 이벤트 데이터를 출력하는 것을 의미한다. 따라서, 예를 들면 엔트리(411)의 이벤트가 히트하면, 그 때의 이벤트 데이터를 출력하게 된다. 마찬가지로, 엔트리(412)의 이벤트가 히트하면, 그 때의 이벤트 데이터를 출력하게 된다. 엔트리(413)의 이벤트가 히트하면, 그 때의 이벤트 데이터를 출력하게 된다.
또한, 엔트리(411, 412, 413)의 미스히트시 제어 지시부(438)에는 「변경 없음」이 설정되고, 미스히트시 출력 지시부(439)에는 「출력하지 않음」이 설정되어 있다. 「변경 없음」은, 엔트리의 변경을 행하지 않고 동일한 엔트리의 감시를 계속하는 것을 나타낸다. 「출력하지 않음」은, 이벤트 데이터를 출력하지 않는 것을 나타낸다. 따라서, 예를 들면 엔트리(411)의 이벤트가 히트하지 않았을 때, 그대로 엔트리(411)의 이벤트의 감시를 계속하고, 또한 이벤트 데이터를 출력하지 않게 된다. 마찬가지로, 엔트리(412)의 이벤트가 히트하지 않았을 때, 그대로 엔트리(412)의 이벤트의 감시를 계속하고, 또한 이벤트 데이터를 출력하지 않는다. 엔트리(413)의 이벤트가 히트하지 않았을 때, 그대로 엔트리(413)의 이벤트의 감시를 계속하고, 또한 이벤트 데이터를 출력하지 않는다.
이상과 같이 설정된 제어 정보 리스트(4)를 이용하여 측정을 개시하면, 우선 참조하는 엔트리의 초기값으로서 엔트리(411)가 지정된다. 주기능 구성부(2)로부터의 신호가 어드레스 A에의 버스 액세스 이외의 것이면, 참조하는 엔트리를 감시 대상으로서 변경하지 않고 이벤트 데이터를 출력하지 않고, 어드레스 A에의 버스 액세스가 관측되는 것을 대기하는 상태가 계속된다.
어드레스 A에의 버스 액세스가 있으면 엔트리(411)의 이벤트가 검출된다. 그렇게 하면, 참조하는 엔트리가 엔트리(412)로 변경되고, 또한 이벤트 데이터로서, 어드레스 A에의 액세스의 데이터 값이 출력된다.
마찬가지로, 엔트리(412)를 참조한 관측에서는, 어드레스 B에의 버스 액세스가 관측될 때까지 대기하는 상태가 계속되고, 관측되면 이벤트 데이터가 출력되고, 엔트리(413)를 참조한 관측으로 이행한다. 엔트리(413)를 참조한 관측에서, 어드레스 C에의 버스 액세스가 관측되면 이벤트 데이터를 출력하여 측정이 종료된다.
이상, 도 13과 같이 설정된 제어 정보 리스트(4)를 이용함으로써, 임의의 프로그램의 실행 동안 다양한 이벤트에 섞여 어드레스 A, B, C의 순번으로 버스 액세스가 발생하였을 때, 그 각 버스 액세스의 이벤트 데이터(예를 들면 데이터값)를 트레이스 데이터로서 취득할 수 있다. 불필요한 데이터가 취득되지 않으므로, 데이터의 기록에 필요한 버퍼 용량이 대폭 삭감된다. 또한, 시스템 LSI의 외부로부터 축차적으로 조작을 하지 않아도 제어 정보 리스트(4)에 따라서 이벤트의 검출과 데이터의 기록이 행해지므로, 외부와의 통신선의 속도에 의해 동작이 제약되지 않는다.
(제2 실시예)
제2 실시예의 이벤트 검출부(31) 및 제어부(32)의 구체적 구성은 도 11에 도시한 제1 실시예의 것과 마찬가지이다.
도 14는 제2 실시예에서의 디버그·트레이스 시스템의 처리 플로우를 도시하는 플로우차트이다. 도 15는 제2 실시예에서의 제어 정보 리스트의 구성도이다.
도 14 및 도 15를 이용하여 본 실시예에서의 동작을 설명한다.
또한, 도 14의 스텝 S52∼스텝 S54는 도 4의 스텝 S2에 상당한다. 도 14의 스텝 S55∼스텝 S56은 도 4의 스텝 S3에 상당한다. 도 14의 스텝 S57∼스텝 S60은 도 4의 스텝 S4에 상당한다.
도 15에 도시한 제어 정보 리스트(4)의 예에서는, 도 13의 예와 마찬가지로, 동작 지시부(43) 내에, 히트시 제어 지시부(433), 히트시 출력 지시부(434), 미스히트시 제어 지시부(438), 및 미스히트시 출력 지시부(439)가 포함되어 있다.
히트시 제어 지시부(433)는, 검출 조건에 해당하는 이벤트를 검출하였을 때(히트시)의 디버그·트레이스 회로(3) 내부의 동작을 규정하는 동작 지시이다. 히트시 출력 지시부(434)는, 히트시의 이벤트 데이터를 출력할 것인지의 여부를 설정하는 정보이다.
미스히트시 제어 지시부(438)는, 검출 조건 이외의 이벤트를 검출하였을 때(미스히트시)의 동작을 규정하는 동작 지시이다. 미스히트시 출력 지시부(439)는, 미스히트시의 이벤트 데이터를 출력할 것인지의 여부를 설정하는 정보이다.
또한, 여기서는 단순한 예로서 히트시 제어 지시부(433) 및 히트시 출력 지시부(434)가 1개씩 나타나 있다. 그러나, 본 발명이 이에 한정되는 것은 아니다. 다른 예로서, 검출 조건 지시부(42) 내에 복수의 검출 조건을 설정하고, 동작 지시부(43)에 복수의 히트시 제어 지시부(433) 및 히트시 출력 지시부(434)를 설정할 수 있는 엔트리(41)의 구성으로 하여도 된다. 그렇게 하면, 검출된 이벤트의 내용에 따라서 상이한 처리를 행하도록 하는 엔트리(41)의 설정이 가능하게 된다.
도 14를 참조하면, 우선, 외부로부터 제어부(32)에 관측 개시 지시가 입력 되면, 제어 실행부(321)가 엔트리 읽어내기 위치 유지부(322)에 초기값을 설정한다(스텝 S51). 엔트리 읽어내기 위치 유지부(322)에 초기값이 설정됨으로써, 제어 정보 리스트(4)로부터 엔트리를 읽어내는 위치가 초기화된다. 이 때, 통상은 제어 정보 리스트(4)의 선두를 지정하지만, 용법에 따라서 그 밖의 값으로 하여도 된다.
그 후, 제어부(32)는, 엔트리 읽어내기 위치 유지부(322)로부터 제어 정보 리스트 유지부(33)에 읽어내기 위치를 통지한다(스텝 S52). 제어 정보 리스트 유지부(33)는, 통지된 읽어내기 위치에 해당하는 엔트리(41)를 출력한다(스텝 S53). 제어부(32)는, 제어 정보 리스트 유지부(33)로부터 출력된 엔트리(41)를 내부의 엔트리 정보 유지부(323)에 보존한다(스텝 S54).
다음으로, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 검출 조건 지시부(42)를 참조하여(스텝 S55), 거기에 나타내어져 있는 검출 조건을 이벤트 검출부(31)의 검출 조건 유지부(311)에 기입한다(스텝 S56).
그 후, 주기능 구성부(2)로부터의 신호가 변화되면(스텝 S57), 이벤트 검출부(31) 내의 조건 판정부(312)는 신호의 관측 결과와 검출 조건 유지부(311)에 유지되어 있는 검출 조건에 기초하여, 그 변화가 이벤트를 통지하는 조건에 해당하는지의 여부를 판정한다(스텝 S58). 이 통지 조건의 판정에서, 통지 조건에 해당하는 이벤트의 발생이 검출되지 않으면, 조건 판정부(312)는 스텝 S57로 되돌아가서, 통지 조건에 해당하는 이벤트가 발생될 때까지 동일한 처리를 반복한다. 한편, 통지 조건의 판정에서, 통지 조건에 해당하는 이벤트의 발생이 검출되면, 조건 판정 부(312)는 제어부(32)에 이벤트 검출 통지를 보낸다(스텝 S59).
제어 실행부(321)는, 이벤트 검출 통지를 받으면(스텝 S60), 그것이 히트 통지인지 미스히트 통지인지를 판정한다(스텝 S61). 히트 통지란, 검출 조건에 해당하는 정보가 통지 조건에 포함되어 있는 경우에, 그 통지 조건(검출 조건)에 해당한 것을 통지하는 정보이다. 미스히트 통지란, 검출 조건에 해당하지 않는 정보가 통지 조건에 포함되어 있는 경우에, 그 통지 조건에 해당한 것(즉, 검출 조건에 해당하지 않는 것)을 통지하는 정보이다.
히트 통지이면, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 히트시 제어 지시부(433)를 참조하여 실행할 제어의 내용을 취득하고, 히트시 출력 지시부(434)를 참조하여 이벤트 데이터를 출력할 필요가 있는지의 여부의 정보를 취득한다(스텝 S62). 한편, 미스히트 통지이면, 제어 실행부(321)는, 엔트리 정보 유지부(323)에 보존되어 있는 엔트리(41)의 미스히트시 제어 지시부(438)를 참조하여 실행할 제어의 내용을 취득하고, 미스히트시 출력 지시부(439)를 참조하여 이벤트 데이터를 출력할 필요가 있는지의 여부의 정보를 취득한다(스텝 S63).
계속해서, 제어 실행부(321)는, 스텝 S42 또는 스텝 S63에서 취득한 정보에 기초하여, 이벤트 데이터를 출력할 필요가 있는지의 여부를 판정한다(스텝 S64). 이벤트 데이터를 출력할 필요가 있으면, 제어 실행부(321)는 이벤트 검출부(31)의 이벤트 유지부(313)로부터, 유지되어 있는 이벤트의 상세 정보를 읽어내고, 필요한 정보를 이벤트 데이터로서 출력한다(스텝 S65).
스텝 S64의 판정에서 이벤트 데이터를 출력할 필요가 없었을 때, 또는 스텝 S65에서 이벤트 데이터를 출력하였을 때, 제어 실행부(321)는, 스텝 S62 또는 스텝 S63에서 취득한 제어 내용에 따라서 제어를 실행한다(스텝 S66). 제어 내용은 히트시 제어 지시부(433) 또는 미스히트시 제어 지시부(438)에 나타내어져 있다.
지시 내용이 「변경 없음」이면, 제어 실행부(321)는, 아무것도 하지 않고 스텝 S52로 되돌아간다. 지시 내용이 「다음으로」이면, 제어 실행부(321)는, 엔트리 읽어내기 위치 유지부(322)의 값을 다음 엔트리의 위치를 나타내는 값으로 재기입하고(스텝 S67), 스텝 S52로 되돌아간다. 지시 내용이 「이동」이면, 제어 실행부(321)는, 엔트리 읽어내기 위치 유지부(322)의 값을 지정된 엔트리 읽어내기 위치를 나타내는 값으로 재기입하고, 스텝 S52로 되돌아간다(스텝 S68). 지시 내용이 「종료」이면, 제어 실행부(321)는, 종료 통지를 외부에 출력하고(스텝 S69), 측정을 종료한다. 지시 내용이 「에러」이면, 제어 실행부(321)는, 에러 통지를 외부에 출력하고(스텝 S70), 측정을 종료한다.
또한, 여기서는 설명을 평이하게 하기 위해서 동작을 한번에 1개씩 실행하는 형태로 기술하였지만, 동작의 고속화를 위해서 복수의 스텝을 동시에 실행하여도 되거나 파이프라인 방식에 기초하여 어셈블리 라인 방식으로 실행하여도 된다.
다음으로, 본 실시예에서의 관측 방법에 대하여, 도 15에 도시한 구체적인 제어 정보 리스트(4)의 예를 이용하여 설명한다. 여기서는, 주기능 구성부(2)로부터의 특정한 신호의 변화를, 검출 조건에 해당하는 이벤트로서 취급하는 예를 나타낸다. 예를 들면, 컷-인(cut-in) 신호 혹은 제어 신호가 유효하게 된 것, 혹은 무 효하게 된 것을, 검출 조건에 해당하는 이벤트로 하는 것이 있다. 또한, 임의의 동작 유닛의 상태가 변화한 것을 이벤트로 하는 것이 있다.
또한, 검출 조건으로서 특정한 1개의 신호에 대하여 이벤트의 검출 조건을 설정하는 것으로 하여도 되지만 다른 방법이어도 된다. 다른 예로서, 복수의 이벤트의 검출 조건의 값을 설정하고, 그들 이벤트마다 유효로 할지 무효로 할지를 비트맵으로 설정하는 방법도 생각된다. 이에 의해 특정한 이벤트군을 지정할 수 있게 된다.
도 15를 참조하면, 제어 정보 리스트(4)에는 4개의 엔트리(414, 415, 416, 417)가 포함되어 있다.
엔트리(414)의 검출 조건 지시부(42)에는 「이벤트 A」가 설정되어 있다. 따라서 이벤트 A가 발생하면 엔트리(414)의 이벤트로서 검출되게 된다. 마찬가지로, 엔트리(415)의 검출 조건 지시부(42)에는 「이벤트 B」가 설정되어 있다. 엔트리(416)의 검출 조건 지시부(42)에는 「이벤트 C」가 설정되어 있다. 엔트리(417)의 검출 조건 지시부(42)에는 「이벤트 D」가 설정되어 있다.
또한, 엔트리(414), 엔트리(415), 및 엔트리(416)의 히트시 제어 지시부(433)에는 「다음으로」가 설정되어 있다. 「다음으로」는, 다음 엔트리의 감시로 진행하는 것을 나타낸다. 따라서, 예를 들면 엔트리(414)의 이벤트가 히트하면, 다음 엔트리(415)의 감시로 이행하게 된다. 마찬가지로, 엔트리(415)의 이벤트가 히트하면, 다음 엔트리(416)의 감시로 이행하게 된다. 엔트리(416)의 이벤트가 히트하면, 다음 엔트리(417)의 감시로 이행하게 된다.
또한, 엔트리(417)의 히트시 제어 지시부(433)에는 「종료」가 설정되어 있다. 「종료」는, 거기에서 측정을 종료하는 것을 나타낸다. 따라서, 엔트리(417)의 이벤트가 히트하면, 거기에서 측정이 종료되게 된다.
또한, 엔트리(414∼417)의 히트시 출력 지시부(434)와, 엔트리(415∼417)의 미스히트시 출력 지시부(439)에는 「출력」이 설정되어 있다. 「출력」은, 이벤트 데이터를 출력하는 것을 나타낸다. 따라서, 예를 들면 엔트리(414)의 이벤트가 히트하면, 그 때의 이벤트 데이터를 출력하게 된다. 마찬가지로, 엔트리(415, 416 또는 417)의 이벤트가 히트하면, 해당하는 때의 이벤트 데이터를 출력하게 된다. 엔트리(415, 416 또는 417)의 이벤트가 미스 히트하면, 해당하는 때의 이벤트 데이터를 출력하게 된다.
또한, 엔트리(414, 417)의 미스히트시 제어 지시부(438)에는 「변경 없음」이 설정되어 있다. 「변경 없음」은, 엔트리의 변경을 행하지 않고 동일한 엔트리의 감시를 계속하는 것을 나타낸다. 따라서, 엔트리(414 또는 417)의 이벤트가 히트하지 않았을 때, 그대로 엔트리(414)의 이벤트의 감시를 계속하게 된다.
또한, 엔트리(414)의 미스히트시 출력 지시부(439)에는 「출력하지 않음」이 설정되어 있다. 「출력하지 않음」은, 이벤트 데이터를 출력하지 않는 것을 나타낸다. 따라서, 엔트리(414)의 이벤트가 히트하지 않았을 때, 이벤트 데이터를 출력하지 않게 된다.
또한, 엔트리(415)의 미스히트시 제어 지시부(438)에는 「에러」가 설정되어 있다. 「에러」는, 에러 통지를 외부에 출력하고, 거기에서 측정을 종료하는 것을 나타낸다. 따라서, 엔트리(415)의 이벤트가 미스 히트하면, 에러 통지가 출력되고, 거기에서 측정이 종료되게 된다.
또한, 엔트리(416)의 미스히트시 제어 지시부(438)에는 「414로 이동」이 설정되어 있다. 「이동」은, 지정된 엔트리의 감시로 진행하는 것을 나타낸다. 여기서는 이동처로서 「414」가 설정되어 있다. 따라서, 엔트리(416)의 이벤트가 미스 히트하면, 엔트리(414)의 감시로 이행하게 된다.
이상과 같이 설정된 제어 정보 리스트(4)를 이용하여 측정을 개시하면, 우선 참조 엔트리의 초기값으로서 엔트리(414)가 지정된다. 이에 의해 이벤트 A의 감시가 개시된다. 검출된 이벤트가 이벤트 A 이외이면, 참조하는 감시 대상의 엔트리를 변경하지 않고, 이벤트 데이터를 출력하지 않는다. 그리고, 이벤트 A가 관측되는 것을 대기하는 상태가 계속된다. 이벤트 A가 발생하면, 엔트리(414)의 이벤트가 검출된다. 그렇게 하면, 참조하는 엔트리가 엔트리(415)로 변경되고, 또한 이벤트 데이터가 출력된다. 이벤트 데이터는 예를 들면 검출된 이벤트에 관한 정보이다.
이벤트 A가 관측된 후, 다음의 이벤트가 관측되면, 엔트리(415)의 내용이 참조된다. 엔트리(415)에서는, 이벤트 B 이외의 이벤트가 검출되었을 때 에러 통지를 출력하고, 이벤트 데이터를 출력하여 측정이 종료된다. 에러로 인해 측정이 종료한 경우에는 이벤트 데이터를 조사함으로써, 무엇이 일어났는지를 확인할 수 있다.
한편, 이벤트 B가 관측되면, 참조하는 엔트리를 엔트리(416)로 변경하고, 이 벤트 데이터를 출력한다. 이벤트 B가 관측된 후, 다음의 이벤트가 검출되면, 엔트리(416)의 내용이 참조된다. 엔트리(416)에서는, 이벤트 C 이외의 이벤트가 검출되었을 때, 엔트리(414)로 되돌아가서 이벤트 A의 감시부터 개시한다. 이벤트가 이벤트 C가 아니라는 것은, 에러는 아니지만, 트레이스의 조건도 아니기 때문에 이벤트 A의 감시부터 다시 시작한다.
이벤트 C가 검출되면, 그 후는 엔트리(417)의 내용이 참조된다. 엔트리(417)에서는, 이벤트 D 이외의 이벤트가 검출된 경우에는 이벤트 데이터를 출력하지만 참조하는 엔트리는 변경하지 않는다. 이에 의해 이벤트 D가 검출될 때까지 모든 이벤트의 이벤트 데이터를 트레이스 데이터로서 기록하게 된다. 그리고, 이벤트 D가 검출되면, 거기에서 종료 통지를 출력하여 측정을 종료한다.
이상, 도 15와 같이 설정된 제어 정보 리스트(4)를 이용함으로써, 임의의 프로그램의 실행 동안 이벤트 A, B, C가 연속하여 발생함으로써 이벤트의 트레이스를 개시하고, 이벤트 D의 발생에 의해 트레이스를 종료할 수 있다.
이상, 실시 형태 및 실시예를 참조하여 본 발명을 설명하였지만, 본 발명은 상술한 실시 형태 및 실시예에 한정되는 것은 아니다. 청구범위에 정의된 본 발명의 구성이나 상세에는, 발명의 범주 내에서 당업자가 이해할 수 있는 다양한 변경을 행할 수 있다.
이 출원은, 2007년 2월 14일에 출원된 일본 특허 출원 번호 2007-033340을 기초로 하여 우선권을 주장하는 것이며, 그 개시 모두를 본원에 포함한다.

Claims (11)

  1. 디버그 기능을 구비한 반도체 집적 회로로서,
    연속적인 미리 정해진 동작을 실행하여, 상기 동작에 연관되는 이벤트들을 연속적으로 발생시키는 주기능 구성부와,
    일련의 이벤트에 기초하여 관측이 요구되는 이벤트를 특정하도록, 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억하고 있고 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 -, 상기 주기능 구성부에서 발생하는 이벤트와, 상기 제어 정보 리스트 중 현재의 판독 위치의 1개의 엔트리의 검출 조건 지시 정보를 비교하고, 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하고, 상기 제어 정보 리스트의 다음의 판독 위치를 변경하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 행하여, 상기 이벤트를 특정하는 디버그·트레이스 회로
    를 갖는 반도체 집적 회로.
  2. 제1항에 있어서,
    상기 동작 지시 정보는, 이벤트 데이터를 출력할 것인지의 여부를 규정하는 출력 지시 정보와, 상기 디버그·트레이스 회로의 내부 동작을 규정하는 제어 지시 정보를 포함하고 있는 반도체 집적 회로.
  3. 제1항에 있어서,
    상기 동작 지시 정보는, 상기 검출 조건 지시 정보에 해당하는 이벤트가 발생하였을 때의 동작을 선택하는 히트시(hit) 동작 지시 정보와, 상기 검출 조건 지시 정보에 해당하지 않는 이벤트가 발생하였을 때의 동작을 선택하는 미스히트(mishit)시 동작 지시 정보를 포함하고 있는 반도체 집적 회로.
  4. 제1항에 있어서,
    상기 주기능 구성부는 동작 유닛들을 포함하고,
    상기 동작 지시 정보는, 상기 동작 유닛을 선택하여 동작을 지시하기 위한 동작 유닛 제어 지시 정보를 포함하고 있고,
    상기 디버그·트레이스 회로는, 상기 동작 유닛 제어 지시 정보에 따라서 상기 동작 유닛에 제어 신호를 송신하는 반도체 집적 회로.
  5. 제1항에 있어서,
    상기 동작 지시 정보는, 측정에 관한 동작의 제어를 지시하는 성능 측정 제어 지시 정보를 포함하고 있고,
    상기 디버그·트레이스 회로는, 상기 성능 측정 제어 지시 정보에 따라서, 측정에 관한 동작을 제어하는 반도체 집적 회로.
  6. 연속적인 미리 정해진 동작을 실행하여, 상기 동작들에 연관되는 이벤트들을 연속적으로 발생시키는 주기능 구성부를 구비한 반도체 집적 회로에 내장되는 디버그·트레이스 회로로서,
    일련의 이벤트에 기초하여 관측이 요구되는 이벤트를 특정하도록, 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억하는 제어 정보 리스트 유지부와 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 -,
    상기 주기능 구성부에서 발생하는 이벤트와, 상기 제어 정보 리스트 중 현재의 판독 위치의 1개의 엔트리의 검출 조건 지시 정보를 비교하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 실행하는 이벤트 검출부와,
    상기 이벤트 검출부로부터의 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하고, 상기 제어 정보 리스트의 다음의 판독 위치를 변경하는 제어부
    를 갖는 디버그·트레이스 회로.
  7. 제6항에 있어서,
    상기 동작 지시 정보는, 이벤트 데이터를 출력할 것인지의 여부를 규정하는 출력 지시 정보와, 상기 디버그·트레이스 회로의 내부 동작을 규정하는 제어 지시 정보를 포함하고 있는 디버그·트레이스 회로.
  8. 제6항에 있어서,
    상기 동작 지시 정보는, 상기 검출 조건 지시 정보에 해당하는 이벤트가 발생하였을 때의 동작을 선택하는 히트시 동작 지시 정보와, 상기 검출 조건 지시 정보에 해당하지 않는 이벤트가 발생하였을 때의 동작을 선택하는 미스히트시 동작 지시 정보를 포함하고 있는 디버그·트레이스 회로.
  9. 제6항에 있어서,
    상기 주기능 구성부는 동작 유닛들을 포함하고,
    상기 동작 지시 정보는, 상기 동작 유닛을 선택하여 동작을 지시하기 위한 동작 유닛 제어 지시 정보를 포함하고 있고,
    상기 디버그·트레이스 회로는, 상기 동작 유닛 제어 지시 정보에 따라서 상기 동작 유닛에 제어 신호를 송신하는 동작 유닛 제어부를 더 갖는 디버그·트레이스 회로.
  10. 제6항에 있어서,
    상기 동작 지시 정보는, 측정에 관한 동작의 제어를 지시하는 성능 측정 제어 지시 정보를 포함하고 있고,
    상기 디버그·트레이스 회로는, 상기 성능 측정 제어 지시 정보에 따라서, 측정에 관한 동작을 제어하는 성능 측정부를 더 갖는 디버그·트레이스 회로.
  11. 연속적인 미리 정해진 동작을 실행하여, 상기 동작들에 연관되는 이벤트들을 연속적으로 발생시키는 주기능 구성부를 구비한 반도체 집적 회로에 내장된 디버그·트레이스 회로에 의해 주기능 구성부의 동작을 관측하기 위한 반도체 집적 회로 동작 관측 방법으로서,
    일련의 이벤트에 기초하여 관측이 요구되는 이벤트를 특정하도록 복수의 엔트리를 순차적인 방식으로 포함하는 제어 정보 리스트를 미리 기억해 놓는 단계와 - 상기 복수의 엔트리 각각은, 대상 이벤트의 발생을 검출하기 위한 검출 조건 지시 정보와, 상기 검출 조건 지시 정보와 상기 주기능 구성부에서 발생하는 이벤트와의 비교 결과에 따른 동작을 지정하는 동작 지시 정보의 세트로 이루어져 있음 -,
    상기 주기능 구성부에서 발생하는 이벤트와, 상기 제어 정보 리스트 중 현재의 판독 위치의 1개의 엔트리의 검출 조건 지시 정보를 비교하고, 상기 비교의 결과에 따라서, 상기 검출 조건 지시 정보와 쌍을 이루는 상기 동작 지시 정보에 의해 지정된 동작을 실행하고 상기 제어 정보 리스트의 다음의 판독 위치를 변경하는 것을, 상기 제어 정보 리스트에 따라서 연속적으로 행하여, 상기 이벤트를 특정하여 관측을 행하는 단계
    를 포함하는, 반도체 집적 회로 동작 관측 방법.
KR1020097019084A 2007-02-14 2008-01-25 반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법 KR101090556B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-033340 2007-02-14
JP2007033340 2007-02-14

Publications (2)

Publication Number Publication Date
KR20090121321A KR20090121321A (ko) 2009-11-25
KR101090556B1 true KR101090556B1 (ko) 2011-12-08

Family

ID=39689903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097019084A KR101090556B1 (ko) 2007-02-14 2008-01-25 반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법

Country Status (6)

Country Link
US (1) US7911216B2 (ko)
EP (1) EP2124149A4 (ko)
JP (1) JP5151996B2 (ko)
KR (1) KR101090556B1 (ko)
CN (1) CN101606132B (ko)
WO (1) WO2008099657A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102782658B (zh) * 2010-03-05 2015-03-18 三菱电机株式会社 程序跟踪装置
JP5884729B2 (ja) * 2010-04-27 2016-03-15 日本電気株式会社 論理回路エミュレータ及び論理回路エミュレータの制御方法
JP6052847B2 (ja) * 2012-02-24 2016-12-27 Necプラットフォームズ株式会社 トランザクション処理装置及び不正トランザクション検出方法
US9377507B2 (en) * 2012-05-07 2016-06-28 Microchip Technology Incorporated Processor device with instruction trace capabilities
JP2016025649A (ja) * 2014-07-24 2016-02-08 富士通株式会社 電子装置及び機器検知方法
KR102522154B1 (ko) * 2016-03-15 2023-04-17 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법
US12072378B2 (en) * 2019-12-09 2024-08-27 Advanced Micro Devices, Inc. Debug state machine triggered extended performance monitor counter

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147836A (ja) * 1999-10-01 2001-05-29 Stmicroelectronics Inc マイクロコンピュータデバッグアーキテクチャ及び方法
JP2006338305A (ja) * 2005-06-01 2006-12-14 Toshiba Corp 監視装置及び監視プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288931A (ja) 1988-05-16 1989-11-21 Nec Corp Pl/iプログラムのデバック方式
JPH05100891A (ja) 1991-10-09 1993-04-23 Kobe Nippon Denki Software Kk プログラムデバツグ装置
JPH09305443A (ja) * 1996-05-13 1997-11-28 Omron Corp プロセス監視装置およびプロセス監視方法
JP4212224B2 (ja) 2000-07-10 2009-01-21 株式会社東芝 半導体集積回路
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
JP2003263340A (ja) 2002-03-11 2003-09-19 Ricoh Co Ltd デバッグ装置
US7149926B2 (en) * 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors
JP4874440B2 (ja) * 2004-06-29 2012-02-15 株式会社デンソー 状態とイベントの組にアクションを割り当てた対応情報に基づいてプログラムを生成するプログラム生成プログラム、プログラム生成装置、およびプログラム生成方法、ならびに、これらによって生成されるプログラム
JP2006336305A (ja) 2005-06-02 2006-12-14 Shin Caterpillar Mitsubishi Ltd 作業機械
JP4523508B2 (ja) 2005-07-28 2010-08-11 長野計器株式会社 測定器及びその製造方法
JP5067111B2 (ja) * 2007-10-18 2012-11-07 富士通セミコンダクター株式会社 半導体集積回路及びデバッグモード決定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147836A (ja) * 1999-10-01 2001-05-29 Stmicroelectronics Inc マイクロコンピュータデバッグアーキテクチャ及び方法
JP2006338305A (ja) * 2005-06-01 2006-12-14 Toshiba Corp 監視装置及び監視プログラム

Also Published As

Publication number Publication date
KR20090121321A (ko) 2009-11-25
EP2124149A4 (en) 2012-11-14
CN101606132B (zh) 2012-05-30
JPWO2008099657A1 (ja) 2010-05-27
CN101606132A (zh) 2009-12-16
WO2008099657A1 (ja) 2008-08-21
US20100321051A1 (en) 2010-12-23
EP2124149A1 (en) 2009-11-25
US7911216B2 (en) 2011-03-22
JP5151996B2 (ja) 2013-02-27

Similar Documents

Publication Publication Date Title
KR101090556B1 (ko) 반도체 집적 회로, 디버그·트레이스 회로, 및 반도체 집적 회로 동작 관측 방법
KR100727975B1 (ko) 시스템 온 칩의 고장 진단 장치 및 방법과 고장 진단이가능한 시스템 온 칩
US20060150023A1 (en) Debugging apparatus
WO2021157299A1 (ja) 通信装置、監視サーバ及びログ収集方法
JP2002024201A (ja) 半導体集積回路
US20210132998A1 (en) Semiconductor device and control method thereof
US7617428B2 (en) Circuits and associated methods for improved debug and test of an application integrated circuit
JP2011053065A (ja) 試験装置、試験方法、プログラムおよびインターフェイス回路
KR101958540B1 (ko) 온 칩 dram을 사용한 멀티코어 환경에서의 포스트 실리콘 디버그 장치 및 방법
CN100481093C (zh) 验证目标系统的验证系统及其验证方法
JP6503889B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2005222446A (ja) オンボードデバッグ装置および半導体回路装置
JP5505781B2 (ja) トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US8966051B2 (en) Technique for monitoring component processing
US6850879B1 (en) Microcomputer with emulator interface
JP2009529722A (ja) 追跡データを生成するための機器、方法、およびコンピュータ・プログラム製品
JP2007010605A (ja) 試験装置、及び試験方法
US11506710B1 (en) Method for testing a circuit system and a circuit system thereof
US20240211405A1 (en) System and method for tracing instruction cache misses
JP2006185365A (ja) 半導体装置およびデバッグ方法
CN118331800A (zh) 时钟测试系统和应用时钟测试系统的时钟切换方法
JP2010231818A (ja) デバッグシステム
CN115563017A (zh) 一种基于总线注入的测试系统、方法及计算机设备
JP2009193604A (ja) 半導体情報処理装置
US20040128597A1 (en) Apparatus and method for selecting program halts in an unprotected pipeline at non-interruptible points in code execution

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee