KR100607023B1 - 프로그램 처리 장치 - Google Patents
프로그램 처리 장치 Download PDFInfo
- Publication number
- KR100607023B1 KR100607023B1 KR1020040065733A KR20040065733A KR100607023B1 KR 100607023 B1 KR100607023 B1 KR 100607023B1 KR 1020040065733 A KR1020040065733 A KR 1020040065733A KR 20040065733 A KR20040065733 A KR 20040065733A KR 100607023 B1 KR100607023 B1 KR 100607023B1
- Authority
- KR
- South Korea
- Prior art keywords
- cpu
- variable
- program
- debug
- monitor circuit
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 10
- 239000004065 semiconductor Substances 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101150098959 MON1 gene Proteins 0.000 description 1
- 101100291875 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) apg-13 gene Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
본 발명은 소프트웨어 디버그의 효율 향상을 도모한다. 제어 LSI(12)에는, CPU 코어(21)가 메모리 공간을 액세스할 때에 사용하는 내부 버스(27)를 감시하고, 사전에 지정된 변수의 상태를 모니터하는 모니터 회로(22)가 구비되어 있다. 모니터 회로(22)는, 프로그램 내의 사전에 설정된 변수에 대하여 CPU 코어(21)에 의한 제기입 동작이 발생하는 경우에 그 갱신 데이터(변수값)를 기억하고, 자신의 내부 레지스터에 보유되어 있는 변수 정보를 소정의 송신 사이클에서 디버그 I/F(23)를 통해 디버그 툴(14)로 송신한다.
CPU 코어, 내부 버스, 디버그 장치, 모니터 회로, CPU
Description
도 1은 일 실시예의 디버그 시스템의 개략적인 구성을 도시하는 블록도.
도 2는 모니터 회로의 내부 레지스터를 도시하는 설명도.
<도면의 주요 부분에 대한 부호의 설명>
12 : 프로그램 처리 장치로서의 제어 LSI
13 : 디버그 장치로서의 퍼스널 컴퓨터(PC)
21 : CPU로서의 CPU 코어
22 : 모니터 회로
23 : 인터페이스 장치로서의 디버그 I/F
25 : 주변 회로로서의 내부 RAM
26 : 주변 회로서의 내부 레지스터
27 : 내부 버스
42 : 어드레스 레지스터
43 : 데이터 레지스터
본 발명은 프로그램 처리 장치에 관한 것으로, 상세하게는 조립 소프트웨어(펌웨어) 등의 동작 검증을 행하는 경우에 사용하기에 적합한 제어 LSI에 관한 것이다.
최근, CPU를 내장한 마이크로 컴퓨터 등의 LSI가 조립 용도로서 이용되며, 소프트웨어의 개발에는 이벨류에이션 칩(이하 에바 칩)이 일반적으로 이용된다. 에바 칩에는, 타깃 시스템에 탑재되는 CPU 외에, 소프트웨어의 디버그를 지원하는 인터페이스 회로가 탑재되어 있다. 그리고, 사용자 보드에 탑재한 에바 칩에 인서킷 에뮬레이터(ICE(R))를 접속하여, 그 ICE로부터 디버그용 커맨드를 CPU에 공급함으로써, 소프트웨어 디버그가 행해지고 있다. 또한, 에바 칩을 사용한 디버그 시스템에 관련되는 선행 기술로서 예를 들면 특허 문헌1이 알려져 있다.
[특허 문헌1]
일본 특개평11-282712호 공보
그런데, CPU를 포함한 주변 회로를 1칩 위에 탑재하여 시스템 레벨의 기능을 실현하는 SOC(System On a Chip) 등에 있어서는, CPU의 버스나 컨트롤 신호가 칩 내부에 집약되게 되기 때문에, 디버그 효율이 저하된다고 하는 문제가 있었다. 즉, 이러한 SOC에서의 소프트 개발에서는, CPU를 개별로 평가용 보드에 실어 디버그를 행할 필요가 있기 때문에, 최종적으로 1칩으로 하는 개발비가 필요로 됨과 함께, 설계 기간이 길어져 TAT(Turn Around Time)를 저하시킨다고 하는 문제가 있었다.
또한, 이러한 소프트웨어 디버그 등의 시험 비용은 극력 저감시키는 것이 요구되고 있어, 디버그에 사용할 수 있는 단자는 소수로 제한되어 있는 것이 실정이다. 이 때문에, 디버그를 효율적으로 행할 수 없다고 하는 문제를 갖고 있었다.
또한, 현재 상태에서는, 소프트웨어의 개발 단계에서, 사전에 프로그램의 소스 코드 내에 브레이크 포인트를 설정하고, 거기를 통과할 때에 프로그램의 실행을 정지시킴으로써, 디버그를 행하도록 하고 있다. 그러나, 이 방법에서는, 브레이크 포인트에서 CPU의 동작이 제어되기 때문에 디버그 효율이 저하됨과 함께, 브레이크 포인트의 설정을 위해 프로그램 메모리를 재기입할 필요가 있기 때문에, 디버그 작업이 번잡하다고 하는 문제가 있었다.
본 발명은 이러한 실정을 감안하여 이루어진 것으로, 그 목적은 소프트웨어디버그의 효율 향상을 도모할 수 있는 프로그램 처리 장치를 제공하는 것에 있다.
상기의 목적을 달성하기 위해, 제1항에 기재된 발명에 따르면, 프로그램 처리 장치는, 프로그램을 실행하는 CPU와, 상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU에 의해 동작 제어되는 신호 처리 회로와, 상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU가 메모리 공간을 액세스할 때에 사용하는 내부 버스와, 상기 내부 버스를 감시하여 상기 프로그램 내의 사전에 지정된 변수의 상태를 1 이상 모니터하는 모니터 회로를 구비한다. 이 구성에 따르면, 프로그램 내에서 사용자가 체크하고자 하는 변수를 임의로 설정하여 디버그를 행할 수 있다. 또한, CPU의 동작을 정지시키지 않고 프로그램의 동작 상태를 리얼타임으로 모니터할 수 있기 때문에, 디버그 작업을 효율적으로 행할 수 있다.
제2항에 기재된 발명에 따르면, 프로그램 처리 장치는, 프로그램을 실행하는 CPU와, 상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU에 의해 동작 제어되는 신호 처리 회로와, 상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU가 메모리 공간을 액세스할 때에 사용하는 내부 버스와, 상기 내부 버스를 감시하여 상기 프로그램 내의 사전에 지정된 변수의 상태를 1 이상 모니터하고, 그 모니터하는 변수의 값이 상기 CPU에 의해 재기입되는 경우에 그 갱신 데이터를 기억하는 모니터 회로를 구비한다. 이 구성에 따르면, CPU의 동작을 정지시키지 않고, 변수의 상태를 수시 확인하면서 디버그 작업을 진행시킬 수 있다.
제3항에 기재된 발명에 따르면, 모니터 회로는, 모니터하는 변수의 어드레스값을 1 이상 보유하는 어드레스 레지스터와, 그 어드레스값에 기초하여 모니터한 변수의 값을 어드레스마다 보유하는 데이터 레지스터를 구비하고 있다. 이 구성에 따르면, 모니터하는 변수의 어드레스값을 복수 설정하여, 복수의 변수의 상태를 체크할 수 있다.
제4항에 기재된 발명에 따르면, 모니터 회로는, 인터페이스 장치를 통해 디버그 장치에 접속되어 있고, 상기 어드레스값과 그 어드레스값에 기초하여 모니터한 변수의 값을, 소정의 송신용 커맨드에 계속되는 변수 정보로서 디버그 장치에 송신한다. 이에 의해, 디버그 장치는, 모니터 회로에 의해 모니터하는 복수의 변수 정보를 수신할 수 있다.
제5항에 기재된 발명에 따르면, 모니터 회로는, 상기 변수 정보를 소정의 송신 사이클에서 디버그 장치에 정기적으로 혹은 상기 변수 정보가 갱신될 때마다 송신한다. 이에 의해, 변수의 값이 갱신되는 경우에도 사용자는 그 상태를 수시 확 인하는 것이 가능해져, 프로그램의 동작 상태를 보다 적확하게 파악하는 것이 가능하게 된다.
제6항에 기재된 발명에 따르면, 모니터 회로는, 상기 변수 정보를 직렬 데이터로서 송신한다. 이에 의해, 디버그용 단자를 소수로 할 수 있어, 칩 사이즈의 증가를 억제할 수 있다.
<실시예>
이하, 본 발명에 따른 프로그램 처리 장치를 예를 들면 펌웨어의 디버그를 행하기 위한 제어 LSI에 적용한 일 실시예를 도면에 따라 설명한다.
도 1은 본 실시예의 디버그 시스템(11)의 개략을 도시하는 블록도이다. 디버그 시스템(11)은, 프로그램 처리 장치로서의 제어 LSI(12) 및 그 제어 LSI(12)와 툴 버스를 통해 접속되는 디버그 장치로서의 퍼스널 컴퓨터(이하, PC)(13)를 포함한다. 후술하는 바와 같이, 제어 LSI(12)는, CPU를 포함한 주변 회로를 1칩에 탑재하여 시스템 레벨의 기능을 실현하는 시스템 LSI이다. PC(13)는, 예를 들면 ICE(R) 등으로 이루어지는 디버그 툴(14)을 갖고 있다.
상술하면, 제어 LSI(12)에는 디버그용 단자(도시 생략)가 구비되고, 그 디버그용 단자에 툴 버스의 버스 케이블(15)이 접속되어 있다. 디버그용 단자는, 제어 LSI(12)의 칩 사이즈에 미치는 영향을 적게 하기 위해 소수(본 실시예에서는 예를 들면 2핀)로 설치되며, 제어 LSI(12)는 버스 케이블(15)을 통해 디버그 툴(14)과 직렬 통신한다. 또한, 본 실시예에서는, 2개의 디버그용 단자에 각각 클럭 버스와 데이터 버스가 접속되며, 제어 LSI(12)와 디버그 툴(14) 사이의 데이터 전송(쌍방 향)은 클럭에 동기하여 행해지도록 되어 있다.
제어 LSI(12)는, CPU 코어(21), 모니터 회로(22), 디버그 인터페이스(이하, 디버그 I/F)(23), 외부 버스 인터페이스(이하, 외부 버스 I/F)(24), 주변 회로로서의 내부 RAM(25) 및 내부 레지스터(26)를 동일한 반도체 기판 상에 갖고 있다. 또한, 제어 LSI(12)는, 도시하지 않았지만, CPU 코어(21)에 의해 동작 제어되는 신호 처리 회로도 갖고 있다.
CPU 코어(21), 모니터 회로(22), 외부 버스 I/F(24), 내부 RAM(25) 및 내부 레지스터(26)는 내부 버스(27)를 통해 서로 접속되어 있다. CPU 코어(21)와 모니터 회로(22)는 내부 버스(28)를 통해 접속되고, CPU 코어(21)와 디버그 I/F(23)는 내부 버스(29)를 통해 접속되어 있다. 모니터 회로(22)와 디버그 I/F(23)는 내부 버스(30)를 통해 접속되어 있다.
외부 버스 I/F(24)에는 외부 버스(31)를 통해 프로그램 메모리(32)가 접속되어 있다. 프로그램 메모리(32)는, 본 실시예에서는 예를 들면 플래시 메모리로 구성되며, 메모리(32)에는 디버그 대상으로 되는 펌웨어가 CPU 코어(21)에 의해 실행 가능한 형태로 저장되어 있다. 보다 구체적으로는, C 언어 등의 고급 언어에 의해 기술된 펌웨어(프로그램)에 컴파일 처리 및 링크 처리가 실시되어, CPU 코어(21)가 실행할 수 있는 기계어의 명령 열로 변환되어 저장되어 있다.
CPU 코어(21)는, 프로그램 메모리(32)에 저장되어 있는 프로그램을 판독하여 명령을 디코드하고, 그 디코드 결과에 따른 각종 처리를 CPU 코어(21)의 메모리 맵에 맵핑된 어드레스에 의해 지정되는 영역(메모리 공간)을 액세스함으로써 실행한 다. 또한, 본 실시예에서, CPU 코어(21)가 액세스하는 메모리 공간으로서는, 내부 버스(27)를 통해 접속되는 내부 RAM(25)이나 내부 레지스터(26) 외에, 외부 버스(31)를 통해 접속되는 도시하지 않은 주변 회로 등의 메모리 공간을 포함한다.
모니터 회로(22)는, CPU 코어(21)에 의한 프로그램 실행 시에, CPU 코어(21)가 메모리 공간을 액세스할 때에 사용하는 내부 버스(27)를 감시하여, 프로그램의 소스 코드 내에 설정되어 있는 변수의 상태를 1 또는 복수 모니터한다.
상술하면, 모니터 회로(22)에는, 내부 레지스터(41)(도 2)가 구비되어 있고, 이 내부 레지스터(41)에는, 모니터 회로(22)가 모니터하는 변수의 어드레스값이 설정되어 있다. 모니터 회로(22)는, CPU 코어(21)에 의한 프로그램의 실행 시에 내부 버스(27)(구체적으로는 어드레스 버스)를 감시하여, 상기 내부 레지스터(41)에 설정되어 있는 어드레스가 내부 버스(27)에 송출되었는지의 여부(즉, 변수가 CPU 코어(21)에 의해 액세스되었는지의 여부)를 체크한다. 그리고, 그 변수에 대하여 CPU 코어(21)에 의해 재기입 동작이 행해지는 경우에, 그 갱신 데이터를 내부 버스(27)(구체적으로는 데이터 버스)로부터 취득하여 내부 레지스터(41)에 기억하도록 되어 있다. 이에 의해, 프로그램 실행 시에 있어서, 모니터 회로(22)는, 프로그램 내의 사전에 지정된 변수를 모니터한다.
상기 내부 레지스터(41)의 구체적 구성에 대하여 설명하면, 도 2에 도시한 바와 같이, 내부 레지스터(41)는, 예를 들면 12종류의 변수 정보를 보유하는 어드레스 레지스터(42)와 데이터 레지스터(43)로 구성되어 있다. 또한, 본 실시예에서, 변수 정보란, 모니터하는 변수의 어드레스값 및 그 어드레스값에 기초하여 모 니터한 변수의 값의 것을 말한다.
즉, 모니터 회로(22)는, 12종류의 변수의 상태를 모니터 가능하며, 각 변수 정보는 각각 모니터 데이터 「MON0」∼「MON11」로서 어드레스 레지스터(42)와 데이터 레지스터(43)에 보유되도록 되어 있다.
어드레스 레지스터(42)에는, 제1, 제2, 제3 레지스터 「ADRH」, 「ADRM」, 「ADRL」에 각각 8비트로 저장되어 있는 데이터(계 24비트)가 프로그램 내에서 모니터하는 변수의 어드레스값으로서 설정되어 있다.
데이터 레지스터(43)(「DATA」)에는, 그 어드레스 레지스터(42)에 설정되어 있는 어드레스값(각 24비트)에 기초하여 모니터한 8비트의 변수값이 기억되도록 되어 있다.
모니터 회로(22)는, 이들 모니터 데이터 「MON0」∼「MON11」에서, 어드레스 레지스터(42)에 의해 지정되는 변수를 모니터하고, 그 변수에 대하여 CPU 코어(21)에 의한 재기입 동작이 발생하는 경우에 그 갱신되는 변수값을 데이터 레지스터(43)에 보존한다.
예를 들면, 모니터 회로(22)는, 도 2에 도시한 제1, 제2, 제3 레지스터 「ADRH」, 「ADRM」, 「ADRL」인 「03:0000h」, 「03:0001h」, 「03:0002h」에 의해 지정되는 모니터 데이터 「MON0」의 변수를 모니터한다. 그리고, 모니터 회로(22)는, 그 변수가 재기입되는 경우에 그 갱신되는 변수값을 데이터 레지스터(43)의 「03:0003h」에 보존한다.
상기한 바와 같이 구성되는 모니터 회로(22)는, 내부 레지스터(41)(어드레스 레지스터(42) 및 데이터 레지스터(43))에 보유되어 있는 변수 정보를, 소정의 송신용 커맨드에 의해 정기적으로 디버그 I/F(23)를 통해 디버그 툴(14)(PC(13))에 송신한다. 이 때, 본 실시예에서는, 버스 케이블(15)을 2핀으로 하고 있기 때문에, 직렬 데이터가 송신되게 된다.
예를 들면, 모니터 회로(22)는, 송신용 커맨드 「C0h」, 「04h」(도시 생략)에 계속되는 변수 정보로서, 모니터 데이터 「MON0」의 제1, 제2, 제3 레지스터 「ADRH」, 「ADRM」, 「ADRL」인 「03:0000h」, 「03:0001h」, 「03:0002h」에 저장된 변수의 어드레스값을 송신한 후, 그 어드레스값에 기초하여 모니터한 변수값으로서 「03:0003h」에 보존된 데이터를 송신한다.
그리고, 모니터 회로(22)는, CPU 코어(21)의 클럭 주파수에 기초하여 사전에 설정된 소정의 송신 사이클에 따라, 모니터 데이터 「MON0」, 「MON1」, …「MON11」, 「MON0」의 순으로 변수 정보를 디버그 툴(14)에 송신하도록 되어 있다.
상기 모니터 회로(22)(내부 레지스터(41))에의 어드레스값의 설정은 디버그 툴(14)에 의해 행해진다. 디버그 툴(14)은, PC(13)의 입력 장치(도시 생략)로부터 입력되는 개발자(사용자)로부터의 지시에 기초하여, 모니터 회로(22)에 의해 모니터하는 변수의 어드레스를 제어 LSI(12)로 송신한다. 구체적으로는, 디버그(14)는, CPU 코어(21)의 메모리 맵에 따라, 프로그램 내의 변수가 맵핑되어 있는 어드레스값을 산출하고, 그 어드레스를 버스 케이블(15)을 통해 PC(13)로부터 제어 LSI(12)에 전송한다.
CPU 코어(21)는, 전송된 어드레스(변수의 어드레스값)를 디버그 I/F(23)로부 터 내부 버스(29)를 통해 수취하고, 그 수취한 어드레스를 내부 버스(28)를 통해 모니터 회로(22)(내부 레지스터(41))에 설정한다.
그 후, 디버그 툴(14)은, CPU 코어(21)에 프로그램(펌웨어)을 실행시킨다. 그 실행 과정에서, 모니터 회로(22)는, 사전에 설정된 변수의 어드레스값에 대하여 데이터(변수값)의 재기입 동작이 행해져 있지 않았는지의 여부를 항상 감시하고, 재기입이 발생한 경우에 그 갱신된 변수값을 내부 레지스터(41)에 기억한다. 그리고, 모니터 회로(22)는, 그 내부 레지스터(41)에 보유되어 있는 변수 정보를 소정의 송신용 커맨드에 의해 내부 버스(30)를 통해 디버그 I/F(23)로부터 디버그 툴(14)(PC(13))에 송신한다.
디버그 툴(14)은, 이와 같이 하여 제어 LSI(12)로부터 정기적으로 송신되는 변수 정보를 순차적으로 취득하고, 그 내용을 PC(13)의 표시 장치(도시 생략)에 출력한다. 이에 의해, 사용자는, 프로그램의 동작 상태를 확인하고, 펌웨어의 디버그를 진행시킨다.
이상 기술한 본 실시예에 따르면, 이하의 효과를 발휘한다.
(1) 제어 LSI(12)에는, CPU 코어(21)가 메모리 공간을 액세스할 때에 사용하는 내부 버스(27)를 감시하고, 사전에 지정된 변수의 상태를 모니터하는 모니터 회로(22)가 구비되어 있다. 이 모니터 회로(22)는, 프로그램 내의 사전에 설정된 변수에 대하여 CPU 코어(21)에 의한 재기입 동작이 발생하는 경우에 그 갱신 데이터(변수값)를 기억하고, 내부 레지스터(41)에 보유되어 있는 복수의 변수 정보를 소정의 송신 사이클에서 정기적으로 디버그 툴(14)에 송신한다. 이 구성에 따르면, 프 로그램 내에서 사용자가 체크하고자 하는 변수(예를 들면 분기 발생 개소에서의 변수 등)를 임의로 설정하여, 디버그를 행할 수 있다. 또한, 이 구성에서는, CPU 코어(21)의 동작을 정지시키지 않고, 프로그램의 동작 상태를 리얼 타임으로 감시할 수 있다. 따라서, 디버그 작업을 효율적으로 행할 수 있다.
(2) 본 실시예에서는, 사전에 지정한 복수의 변수에 대하여, 모니터 회로(22)로부터 순차적으로 직렬로 송신되는 변수 정보에 기초하여 디버그를 행하도록 하였다. 이 때문에, 클럭 버스와 데이터 버스의 2개의 버스 케이블(15)로 디버그를 실현할 수 있다. 이와 같이 디버그용 단자수를 적게 함으로써, 제어 LSI(12)의 칩 사이즈의 증가를 억제하면서, 디버그 작업을 효율적으로 행할 수 있다.
(3) 본 실시예에서는, 종래와 같이 변수 정보를 취득하기 위해 브레이크 포인트를 프로그램의 소스 코드 내에 설정할 필요는 반드시 없다. 이 때문에, 브레이크 포인트 설정을 위한 프로그램 메모리의 재기입 작업 등을 불필요로 할 수도 있다. 단, 브레이크 포인트를 프로그램의 소스 코드 내에 설정하면서, 변수 정보를 취득하는 것도 물론 가능하다.
4) 본 실시예에서는, 마이크로 컴퓨터 등의 소프트 개발에서, CPU(CPU 코어(21))를 탑재한 상태 그대로 소프트웨어 디버그를 행할 수 있다. 이에 의해, 소프트 개발 효율을 향상시켜, 개발 비용의 저감을 도모할 수 있다. 나아가서는, 설계 기간을 단축하여 TAT의 향상을 도모할 수 있다.
또한, 상기 실시예는, 이하와 같이 변경하여 실시해도 된다.
·본 실시예에서, 제어 LSI(12)(시스템 LSI)는, 내부 RAM(25) 및 내부 레지 스터(26)(도 1)를 구비하지만, 칩 내에 CPU 코어(21)와 함께 탑재되는 주변 회로로서는 본 실시예에 한정되지 않는다.
·모니터 회로(22)의 내부 레지스터(41)의 구성은, 도 2에 도시한 양태에 한정되는 것은 아니다. 또한, 모니터 데이터로서 보유하는 복수의 변수 정보는 본 실시예에서 예로 들어 설명한 12종류에 한정되지 않고, 적어도 1개의 변수 정보를 보유할 수 있으면 된다.
·본 실시예에서는, 내부 레지스터(41)에 보유되어 있는 변수 정보를 정기적으로 송신하는 경우의 적용예를 나타냈지만, 이에 한정되지 않는다. 예를 들면 변수 정보가 갱신될 때마다 송신하는 등, 사전에 정해진 방법에 의해 송신되면 된다.
본 실시예에서는, 펌웨어의 디버그를 행하는 경우에 적용하였지만, 이 적용 예에 한정되는 것은 아니다.
상기 실시예로부터 파악할 수 있는 기술 사상을 이하에 기재한다.
(a) 프로그램을 실행하는 CPU와, 상기 CPU에 의해 동작 제어되는 신호 처리 회로와, 그 CPU가 메모리 공간을 액세스할 때에 사용하는 내부 버스를 감시하여 상기 프로그램 내의 사전에 지정된 변수의 상태를 1 이상 모니터하는 모니터 회로를 동일 칩 상에 갖는 프로그램 처리 장치와,
상기 프로그램 처리 장치에 접속되며, 상기 모니터 회로로부터 송신되는 변수 정보를 수신하여 출력하는 디버그 장치
를 구비하는 것을 특징으로 하는 디버그 시스템.
(b) 상기 모니터 회로에 의해 모니터해야 할 변수 정보를 상기 디버그 장치로부터 설정 가능하게 한 것을 특징으로 하는 (a)에 기재된 디버그 시스템.
본 발명에 따르면, 소프트웨어 디버그의 효율 향상을 도모할 수 있는 프로그램 처리 장치를 제공할 수 있다.
Claims (6)
- 프로그램을 실행하는 CPU와,상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU에 의해 동작 제어되는 신호 처리 회로와,상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU가 메모리 공간을 액세스할 때에 사용하는 내부 버스와,상기 내부 버스를 감시하여 상기 프로그램 내의 사전에 지정된 변수의 상태를 1 이상 모니터하는 모니터 회로를 구비하는 것을 특징으로 하는 프로그램 처리 장치.
- 프로그램을 실행하는 CPU와,상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU에 의해 동작 제어되는 신호 처리 회로와,상기 CPU와 동일한 반도체 기판 상에 집적된, 상기 CPU가 메모리 공간을 액세스할 때에 사용하는 내부 버스와,상기 내부 버스를 감시하여 상기 프로그램 내의 사전에 지정된 변수의 상태를 1 이상 모니터하고, 그 모니터하는 변수의 값이 상기 CPU에 의해 재기입되는 경우에 그 갱신 데이터를 기억하는 모니터 회로를 구비하는 것을 특징으로 하는 프로그램 처리 장치.
- 제1항 또는 제2항에 있어서,상기 모니터 회로는,모니터하는 변수의 어드레스값을 1 이상 보유하는 어드레스 레지스터와,상기 어드레스값에 기초하여 모니터한 변수의 값을 그 어드레스마다 보유하는 데이터 레지스터를 구비하는 것을 특징으로 하는 프로그램 처리 장치.
- 제3항에 있어서,상기 모니터 회로는,인터페이스 장치를 통해 디버그 장치에 접속되며, 상기 어드레스값과 그 어드레스값에 기초하여 모니터한 변수의 값을, 소정의 송신용 커맨드에 계속되는 변수 정보로서 상기 디버그 장치에 송신하는 것을 특징으로 하는 프로그램 처리 장치.
- 제4항에 있어서,상기 모니터 회로는,상기 변수 정보를 소정의 송신 사이클에서 상기 디버그 장치에 정기적으로 혹은 상기 변수 정보가 갱신될 때마다 송신하는 것을 특징으로 하는 프로그램 처리 장치.
- 제4항에 있어서,상기 모니터 회로는,상기 변수 정보를 직렬 데이터로서 송신하는 것을 특징으로 하는 프로그램 처리 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2003-00297456 | 2003-08-21 | ||
JP2003297456A JP2005070949A (ja) | 2003-08-21 | 2003-08-21 | プログラム処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050020693A KR20050020693A (ko) | 2005-03-04 |
KR100607023B1 true KR100607023B1 (ko) | 2006-08-01 |
Family
ID=34191179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040065733A KR100607023B1 (ko) | 2003-08-21 | 2004-08-20 | 프로그램 처리 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7434103B2 (ko) |
JP (1) | JP2005070949A (ko) |
KR (1) | KR100607023B1 (ko) |
CN (1) | CN100343820C (ko) |
TW (1) | TWI266985B (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577987B2 (en) * | 2002-12-23 | 2009-08-18 | Authernative, Inc. | Operation modes for user authentication system based on random partial pattern recognition |
US7644433B2 (en) * | 2002-12-23 | 2010-01-05 | Authernative, Inc. | Authentication system and method based upon random partial pattern recognition |
EP1884846A1 (de) * | 2006-08-01 | 2008-02-06 | Siemens Aktiengesellschaft | System und Verfahren zur Anzeige eines Variablenstatus |
US8015483B2 (en) * | 2006-10-20 | 2011-09-06 | Microsoft Corporation | Processing an XML feed with extensible or non-typed elements |
JP4976817B2 (ja) * | 2006-11-06 | 2012-07-18 | オンセミコンダクター・トレーディング・リミテッド | プログラム処理装置及びプログラム処理方法 |
US7707459B2 (en) * | 2007-03-08 | 2010-04-27 | Whirlpool Corporation | Embedded systems debugging |
US7861119B1 (en) * | 2007-12-07 | 2010-12-28 | American Megatrends, Inc. | Updating a firmware image using a firmware debugger application |
US20110258421A1 (en) * | 2010-04-19 | 2011-10-20 | International Business Machines Corporation | Architecture Support for Debugging Multithreaded Code |
CN102063368B (zh) * | 2010-12-16 | 2013-03-27 | 国网电力科学研究院 | 基于命名变量的全景数据在线实时调试方法 |
US8706937B2 (en) * | 2011-03-02 | 2014-04-22 | Texas Instruments Incorporated | Method and system of debugging multicore bus transaction problems |
JP5441983B2 (ja) * | 2011-10-31 | 2014-03-12 | 三菱電機株式会社 | 動的解析装置、動的解析システム、動的解析方法、及びプログラム |
CN103092738A (zh) * | 2012-12-26 | 2013-05-08 | 杭州华为数字技术有限公司 | 一种资源可视化方法及装置 |
CN110321149B (zh) * | 2014-06-19 | 2023-08-25 | 日立安斯泰莫株式会社 | 车载程序写入装置 |
JP2020140380A (ja) * | 2019-02-27 | 2020-09-03 | ローム株式会社 | 半導体装置及びデバッグシステム |
JP2022028237A (ja) * | 2020-08-03 | 2022-02-16 | ローム株式会社 | モータ制御システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08185339A (ja) * | 1994-12-28 | 1996-07-16 | Nissan Motor Co Ltd | データ記録装置およびデータ記録方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530804A (en) | 1994-05-16 | 1996-06-25 | Motorola, Inc. | Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes |
JP2752592B2 (ja) | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 |
JP2845155B2 (ja) * | 1995-02-07 | 1999-01-13 | 日本電気株式会社 | シングルチップマイクロコンピュータのエミュレーションチップ |
JP3313007B2 (ja) * | 1995-04-14 | 2002-08-12 | 三菱電機株式会社 | マイクロコンピュータ |
US5860161A (en) * | 1996-08-14 | 1999-01-12 | Advanced Micro Devices, Inc. | Microcontroller configured to indicate internal memory accesses externally |
US5903912A (en) * | 1996-08-14 | 1999-05-11 | Advanced Micro Devices, Inc. | Microcontroller configured to convey data corresponding to internal memory accesses externally |
US5668815A (en) * | 1996-08-14 | 1997-09-16 | Advanced Micro Devices, Inc. | Method for testing integrated memory using an integrated DMA controller |
US5862148A (en) * | 1997-02-11 | 1999-01-19 | Advanced Micro Devices, Inc. | Microcontroller with improved debug capability for internal memory |
US6041406A (en) * | 1997-04-08 | 2000-03-21 | Advanced Micro Devices, Inc. | Parallel and serial debug port on a processor |
US6094729A (en) * | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
JP3397230B2 (ja) | 1997-05-28 | 2003-04-14 | 松下電器産業株式会社 | デバッグシステム |
JP3151808B2 (ja) | 1997-07-16 | 2001-04-03 | 日本電気株式会社 | 集積回路装置、回路検査装置および方法 |
JP3684832B2 (ja) | 1998-03-31 | 2005-08-17 | セイコーエプソン株式会社 | マイクロコンピュータ、電子機器及びデバッグシステム |
JP2907808B1 (ja) | 1998-03-31 | 1999-06-21 | 三洋電機株式会社 | フラッシュメモリエミュレーション装置及びそれを用いたデバッグシステム |
US6256777B1 (en) | 1998-10-09 | 2001-07-03 | Hewlett-Packard Company | Method and apparatus for debugging of optimized machine code, using hidden breakpoints |
US6643803B1 (en) | 1999-02-19 | 2003-11-04 | Texas Instruments Incorporated | Emulation suspend mode with instruction jamming |
US6668339B1 (en) | 1999-07-28 | 2003-12-23 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor having a debug interruption function |
JP4190114B2 (ja) | 1999-11-10 | 2008-12-03 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
US6331957B1 (en) | 2000-02-14 | 2001-12-18 | Intel Corporation | Integrated breakpoint detector and associated multi-level breakpoint techniques |
KR100337149B1 (ko) * | 2000-07-05 | 2002-05-18 | 권 기 홍 | 프로그램 테스트 및 디버깅이 용이한 중앙처리장치 |
US20020065646A1 (en) | 2000-09-11 | 2002-05-30 | Waldie Arthur H. | Embedded debug system using an auxiliary instruction queue |
US6985980B1 (en) | 2000-11-03 | 2006-01-10 | Xilinx, Inc. | Diagnostic scheme for programmable logic in a system on a chip |
US6751751B1 (en) | 2000-11-06 | 2004-06-15 | Xilinx, Inc. | Universal multi-bus breakpoint unit for a configurable system-on-chip |
JP3913470B2 (ja) * | 2000-12-28 | 2007-05-09 | 株式会社東芝 | システムlsi |
JP2002202900A (ja) | 2000-12-28 | 2002-07-19 | Seiko Epson Corp | デバッグ装置 |
US20020144235A1 (en) | 2001-03-30 | 2002-10-03 | Charles Simmers | Debugging embedded systems |
KR100802606B1 (ko) * | 2001-04-13 | 2008-02-13 | 엘지전자 주식회사 | 데이터의 천이 상태에 따른 디버깅 장치 및 방법 |
US20020157085A1 (en) | 2001-04-20 | 2002-10-24 | Hiroyuki Yabuno | Information processing apparatus |
JP2003162426A (ja) | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
-
2003
- 2003-08-21 JP JP2003297456A patent/JP2005070949A/ja active Pending
-
2004
- 2004-08-10 CN CNB2004100560508A patent/CN100343820C/zh not_active Expired - Fee Related
- 2004-08-16 US US10/919,147 patent/US7434103B2/en active Active
- 2004-08-19 TW TW093124922A patent/TWI266985B/zh not_active IP Right Cessation
- 2004-08-20 KR KR1020040065733A patent/KR100607023B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08185339A (ja) * | 1994-12-28 | 1996-07-16 | Nissan Motor Co Ltd | データ記録装置およびデータ記録方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050044452A1 (en) | 2005-02-24 |
KR20050020693A (ko) | 2005-03-04 |
TWI266985B (en) | 2006-11-21 |
CN100343820C (zh) | 2007-10-17 |
TW200508856A (en) | 2005-03-01 |
US7434103B2 (en) | 2008-10-07 |
JP2005070949A (ja) | 2005-03-17 |
CN1584852A (zh) | 2005-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100607023B1 (ko) | 프로그램 처리 장치 | |
US6289300B1 (en) | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit | |
US6523136B1 (en) | Semiconductor integrated circuit device with processor | |
CN106599343B (zh) | 一种提高仿真效率的soc系统验证方法和装置 | |
US6662314B1 (en) | Microcomputer including program for rewriting data in an internal flash memory | |
US6230119B1 (en) | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit | |
US6668339B1 (en) | Microprocessor having a debug interruption function | |
KR100768396B1 (ko) | 프로그램 처리 장치 | |
WO2006008721A2 (en) | Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller | |
EP2003562A2 (en) | Debugging techniques for a programmable integrated circuit | |
US7428661B2 (en) | Test and debug processor and method | |
US5995993A (en) | Serial in-circuit emulator | |
EP3572943B1 (en) | Semiconductor device and debug method | |
JP4024026B2 (ja) | 半導体装置および評価装置 | |
US10754743B2 (en) | Apparatus and method using debug status storage element | |
US20140095841A1 (en) | Processor and control method of processor | |
JP2005070951A (ja) | プログラム処理装置 | |
JPS61221837A (ja) | コンピユ−タの検査方法 | |
CN111651381A (zh) | 半导体装置与数据保护方法 | |
JPH09114692A (ja) | インサーキットエミュレータ | |
CN117472666A (zh) | 开源处理器及内部缓存的访问方法、调试系统及电子设备 | |
JP2007094475A (ja) | 半導体集積回路、並びに、デバッグ方法及びデバッグシステム | |
US20150082083A1 (en) | Information processing system and information processing method | |
JP2000148535A (ja) | プロセッサ及びこれを用いたインサーキットエミュレータ | |
JPH03286342A (ja) | タイミング発生装置及びそれを用いた擬似プロセッサ装置 |
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: 20120628 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130628 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |