KR20060126734A - Dma 디바이스를 위한 실시간 디버그 지원과 그 방법 - Google Patents

Dma 디바이스를 위한 실시간 디버그 지원과 그 방법 Download PDF

Info

Publication number
KR20060126734A
KR20060126734A KR1020067014758A KR20067014758A KR20060126734A KR 20060126734 A KR20060126734 A KR 20060126734A KR 1020067014758 A KR1020067014758 A KR 1020067014758A KR 20067014758 A KR20067014758 A KR 20067014758A KR 20060126734 A KR20060126734 A KR 20060126734A
Authority
KR
South Korea
Prior art keywords
debug
channel
information
predetermined
dma device
Prior art date
Application number
KR1020067014758A
Other languages
English (en)
Other versions
KR101045475B1 (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 KR20060126734A publication Critical patent/KR20060126734A/ko
Application granted granted Critical
Publication of KR101045475B1 publication Critical patent/KR101045475B1/ko

Links

Images

Classifications

    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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/3636Software debugging by tracing the execution of the program
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

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)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

데이터 프로세싱 시스템(10)은 시스템에서 DMA(Directed Memory Access) 제어기 디바이스(16)에 특정한 한 개 이상의 디버그 메시지들을 선택적으로 생성하는 디버그 모듈(26)를 갖는다. 제어 레지스터(70)는 DMA 디버그 메시지들 중의 어떤 것이 제공되는지를 인에이블한다. 언제 소 루프 반복들이 시작하고 완료하는지를 포함하는 DMA 전송 동작의 시작과 종료가 제공된다. 각 DMA 전송에 대한 채널 요청과 그 요청의 실제 시작 사이의 시스템 지연을 나타내는 지연 정보도 또한 디버그 메시지에 포함될 수 있다. 디버그 메시지들 중의 하나는 제어 레지스터(80)의 제어하의 미리 결정된 DMA 채널의 주기적 상태를 제공한다. 디버그 메시지들 중의 적어도 하나는, 언제 전송이 시작하고 종료하는지를 나타내는 것과 같은, 와치포인트(watchpoint) 기능을 구현한다. 디버그 모듈은 시스템에서 중앙집중형이 되거나 또는 미리 결정된 시스템 유닛들 사이에 분산될 수 있다.
데이터 프로세싱 시스템, DMA, 디버그 제어 회로, 와치포인트, 디버그 메시지

Description

DMA 디바이스를 위한 실시간 디버그 지원과 그 방법{REAL-TIME DEBUG SUPPORT FOR A DMA DEVICE AND METHOD THEREOF}
본 발명은 데이터 프로세싱 시스템에 관한 것이고, 더 구체적으로는, 데이터 프로세싱 시스템의 특징들을 테스트하고 디버그(debug)하는 것에 관한 것이다.
데이터 프로세싱 시스템은 시스템을 위한 통신 고속도로로서 기능하는 한 개 이상의 버스들을 갖는다. 한 개 이상의 버스들은 클록 싸이클로 정의되는 시간 기간 동안 주소, 데이터, 및/또는 제어 정보를 전송하기 위해 기능한다. 데이터 프로세싱 시스템 내의 회로의 기능을 테스트하기 위해서, 및 소프트웨어 프로그램 디버깅으로서 알려진, 소프트웨어의 실행 기능을 검사하고 확인하기 위해서 다양한 기술들을 적용하는 것이 문헌들에 잘 문서화되어 있다. 테스트 방법들의 중요 구성요소는, 레지스터들의 내용과 시스템 동작의 결과와 같은, 데이터 프로세싱 시스템의 부분들에 대한 외부 가시성을 얻는 것이다. 시스템의 버스(들)에 의해 전송되고 있는 주소, 데이터, 및 제어 정보의 값들을 모니터하기 위해 데이터 프로세싱 시스템의 외부 테스트 및 디버그 장치가 사용된다.
통상적 데이터 프로세싱 시스템은 DMA(direct memory access)로서 알려진 기술을 사용한다. DMA를 사용하여, CPU에 의한 최소의 관련으로 입/출력 디바이스들 과 메모리 사이에 정보가 직접적으로 전송될 수 있다. 그러므로, DMA 제어기는 데이터 프로세싱 시스템의 소스로부터 목적지까지 정보 스트림을 전송하기 위해 기능한다.
SOC(system-on-chip) 설계는 통상적으로 실시간 기술을 사용하여 디버그 메시지를 생성할 수 있는 복수 개의 디바이스들과 버스들로 구성된다. 예를 들어, IEEE ISTO5001로서 알려진 IEEE 표준, 또는 넥서스(Nexus) 디버그 표준은 복수 개의 온칩(on-chip) 디바이스들에 의한 실시간 디버그 메시지 생성을 지원하는 설정된 실시간 디버그 표준이다. 넥서스 디버그 표준은 외부 추적 재구성 툴에게 시스템 내의 미리 결정된 동작 조건을 식별하는 메커니즘을 명시한다. 그러나, 이 디버그 정보는 통상적으로, 시스템 메모리로 판독되거나 기록되는 정보의 모니터링 및, 최종 채택된 분지(branch)에서부터 실행된 다수의 순차적 명령들과 같이 실행되는 소프트웨어의 실행 흐름의 변경의 추적에 제한된다. 현재 디버그 프로세서는 DMA 동작에 대한 매우 제한된 양의 정보를 제공할 수 있다.
본 발명은 예를 통해 설명되고, 유사한 참조 부호들이 유사한 소자들을 나타내는, 동반하는 도면들에 의해 제한되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 데이터 프로세싱 시스템을 블록도 형태로 도시한다.
도 2는 본 발명에 따른 다른 데이터 프로세싱 시스템을 블록도 형태로 도시한다.
도 3은 채널의 정보 전송을 시간 함수로서 타이밍도 형태로 도시한다.
도 4는 제1 전송 메시지의 형식을 다이어그램 형태로 도시한다.
도 5는 제2 전송 메시지의 형식을 다이어그램 형태로 도시한다.
도 6는 제3 전송 메시지의 형식을 다이어그램 형태로 도시한다.
도 7는 제4 전송 메시지의 형식을 다이어그램 형태로 도시한다.
도 8는 제5 전송 메시지의 형식을 다이어그램 형태로 도시한다.
도 9는 DMA 메시징을 위한 제어 레지스터를 레이아웃 형태로 도시한다.
도 10은 주기적 상태 메시징을 위한 제어 레지스터를 레이아웃 형태로 도시한다.
당업자라면, 도면의 소자들이 단순성과 명료성을 위해 도시되었고 반드시 스케일링하기 위해 그려진 것은 아님을 이해할 것이다. 예를 들어, 도면들의 일부 소자들의 크기는 본 발명의 실시예들에 대한 이해를 돕기 위해 다른 소자들과 비교하여 과장될 수 있다.
본 명세서에 사용된 것처럼, "버스"라는 용어는, 데이터, 주소, 제어, 또는 상태와 같은 한 개 이상의 다양한 유형의 정보를 전송하기 위해 사용될 수 있는 복수 개의 신호들이나 도선들을 지칭하기 위해 사용될 수 있다. "어설트(assert)"나 "니게이트(negate)"라는 용어들은 신호, 비트, 또는 유사한 장치를 그것의 논리적인 참 또는 거짓 상태로 만드는 것을 지칭할 때 사용된다. 논리적으로 참 상태가 로직 레벨 1일 때, 논리적으로 거짓 상태는 로직 레벨 0이다. 또한, 본 명세서에 기재된 메모리는, 예를 들어, ROM(read only memory), RAM(random access memory), SRAM(static RAM), 비휘발성 메모리(예를 들어, 플래시(Flash)), 및 MRAM 등과 같은, 임의의 유형의 메모리일 수 있다.
도 1은 실시간 DMA-고유한 디버그 기능을 제공하는 데이터 프로세싱 시스템(10)을, 블록도 형태로, 도시한다. 데이터 프로세싱 시스템(10)은 DMA 버스 마스터(master)들에 고유하고 중요 상태 파라미터들을 나타내는 실시간 디버그 메시지 유형들의 클래스를 허용한다. 그러므로, 데이터 프로세싱 시스템(10)은 DMA 유닛에 대한 실시간 메시지를 통해 디버그 정보의 향상된 소스를 제공한다.
일 형태에서, 모든 시스템 디바이스들 간의 통신을 위해 복수-도선 시스템 버스(12)가 제공된다. 프로세서(14)가 시스템 버스(12)에 양방향으로 접속된다. 본 명세서에 기재된 양방향 버스들이 복수 도선 버스이도록 해시 마크(hash mark)로 나타내지지만, 또한, 일 도선 버스 및/또는 복수 양방향 버스들도 구현될 수 있슴을 쉽게 이해할 수 있어야 한다. 또한, DMA 제어기 디바이스(16), 메모리(18, 20), 주변기기(22, 24), 디버그 모듈(26), 및 버스 중재기(28)가 시스템 버스(12)에 양방향으로 접속된다. 디버그 모듈(26)은 그것의 출력에 디버그 정보를 제공하기 위한 디버그 포트(debug port)를 제공한다. DMA 제어기 디바이스(16)와 프로세서(14)의 각각은 디버그 모듈(26)에 복수 비트 상태 신호를 제공하기 위한 출력을 갖는다. 프로세서(14)와 DMA 제어기 디바이스(16) 각각은 버스 중재자(28)와 결합된 복수 비트 양방향 버스를 갖는다. 주변기기(22)의 출력은 DMA_REQ로 레이블된 DMA 요청 신호를 제공하기 위해 DMA 제어기 디바이스(16)에 접속된다. 유사하게, DMA_REQ로 레이블된 DMA 요청 신호를 제공하기 위해 DMA 제어기 디바이스(16)에 주변기기(24)의 출력이 접속된다. 본 명세서에 기재된 시스템 유닛들이, 시스템 버스(12)에 직접 접속된 것으로서, 도 1에 도시되지만, 드라이버, 버퍼 등과 같은, 결합 회로(도시 생략)가 시스템 버스(12)와 도시된 시스템 유닛들 간에 존재할 수 있슴을 이해해야 할 것이다.
동작에서, 데이터 프로세싱 시스템(10)은 프로세서(14)를 사용하여 미리 결정된 명령 세트를 실행한다. 정보는 메모리(18) 또는 메모리(20) 중의 하나에 저장된다. 단지 한 개의 메모리 또는 임의의 다른 수의 메모리가 구현되어 시스템 버스(12)에 접속될 수 있슴을 이해해야 할 것이다. DMA 제어기 디바이스(16)는 데이터 프로세싱 시스템(10) 내에 소스에서 목적지로 정보 스트림의 전송을 제어하기 위해 기능한다. 데이터 프로세싱 시스템(10) 내의 정보는 소스와 목적지 사이에 연관된 스트림인 채널 내에서 통신된다. 주변기기(22) 또는 주변기기(24)와 같은 데이터 프로세싱 시스템(10) 내의 주변기기는 다양한 회로 디바이스들 중의 임의의 것일 수 있지만, 통상적으로 시스템 버스(12)의 제어를 위해 버스 중재자(28)를 요청하지 않고 시스템 버스(12)에 슬레이브(slaves)로서 기능할 것이다. 주변기기가 무슨 유형의 디바이스인지에 무관하게, 주변기기는 시스템 메모리 매핑의 부분을 형성한다. 버스 중재자(28)는 시스템 버스(12)의 제어를 요청하는 데이터 프로세싱 시스템(10) 내의 임의의 디바이스들 간의 시스템 버스(12)의 제어를 중재하기 위해 기능한다. 다수의 종래 중재 알고리즘 중의 임의의 것이 데이터 프로세싱 시스템(10)을 구현하기 위해 사용될 수 있다. 디버그 모듈(26)은 아래 기재된 것처 럼 DMA 제어기 디바이스(16)와 연관된 한 개 이상의 실시간 디버그 메시지를 제공하기 위해 기능한다. 환언하면, 디버그 모듈(26)은 DMA 제어기 디바이스(16)와 프로세서(14) 모두로부터 상태 신호를 수신하여 DMA 제어기 디바이스(16)를 모니터하고, 디버그 포트로 출력하기 위해 아래 기재된 바와 같이 실시간 디버그 메시지를 생성한다.
도 2에는, 도 1의 데이터 프로세싱 시스템(10)의 구성의 다른 실시예가 도시된다. 시스템 버스(30)는 DMA 제어기(44)와 시스템 유닛(40)과 시스템 유닛(42)과 같은 미리 결정된 수의 다른 시스템 유닛에 양방향으로 접속된다. 시스템 유닛(40)과 시스템 유닛(42)은 임의의 유형의 버스 마스터 또는 버스 슬레이브일 수 있다. 시스템 유닛(40), DMA 제어기(44), 및 시스템 유닛(42)의 각각은 디버그 모듈(32), 디버그 모듈(34), 및 디버그 모듈(36)과 양방향으로 결합된다. 디버그 모듈(32), 디버그 모듈(34), 및 디버그 모듈(36)의 각각의 출력은 디버그 포트 로직(38)에 접속된다. 디버그 포트 로직(38)은 실시간 디버그 메시지를 제공하기 위해 디버그 포트를 제공한다. 도 2의 점선으로 나타낸 것처럼, 시스템 버스(30)와 디버그 포트 로직(38) 사이에 임의의 수의 디버그 모듈과 시스템 유닛이 결합될 수 있다.
다른 형태에서, 디버그 모듈의 기능은, DMA 제어기를 포함하는, 시스템 버스(30)와 결합되는 각 시스템 유닛에 대해 디버그 모듈을 할당하기 위한 방식으로 분리된다. 디버그 포트 로직(38)은 디버그 모듈(32), 디버그 모듈(34), 및 디버그 모듈(36)의 각각으로부터 메시지를 수신하고, 디버그 포트 로직에서 메시지를 제공 한다. 일 형태에서, 메시지들이 다양한 디버그 모듈로부터 수신되는 순서로 출력되는 디버그 메시지들을, 시간 순차적으로, 제공하기 위해 디버그 포트 로직(38)의 로직이 구성된다. 그러나, 디버그 출력들의 다른 순서를 구현하기 위해 다른 로직 구성이 사용될 수도 있다.
도 3은, 도 1이나 도 2의 시스템 실시예 내에, 채널 X로서 지시된, 일 채널 상의 전송 동작을 나타내는 타이밍도이다. 채널 X가 소스와 목적지와 연관된 시스템 실시예 내의 미리 결정된 설명적 데이터 스트림임을 가정한다. 소스에서 목적지로 정보 스트림을 전송하기 위해 복수 채널을 지원하기 위해 DMA 제어기 디바이스(16)와 DMA 제어기(44)의 각각이 구성된다. 소스나 목적지 디바이스로부터, DMA_REQ와 같은 DMA 요청 신호를 수신시에 채널 내의 전송이 발생된다. 도 3의 예에서, 3개의 개별적 요청이 도시되었다. 각 요청은, 제1 요청과 연관된 지연(50), 제2 요청과 연관된 지연(52), 및 제3 요청과 연관된 지연(54)과 같은 연관된 지연을 갖는다. 버스 중재자(28)에 의해 결정되는 것처럼, DMA 제어기 디바이스(16)의 현재 우선순위, 및 DMA 제어기 디바이스(16)의 동작에 의해 결정되는 것처럼, 채널 X의 우선순위와 같은, 여러 시스템 요인들로 인해 각 지연의 길이가 달라진다. 이 지연이 시스템의 외부이고 시스템을 인터럽트하지 않는 것이 바람직한 시스템의 일 특성이다.
정보 스트림의 전송은 요청에 따라 특정 수의 데이터 바이트들이 전송될 때까지 계속된다. 도 3에 도시된 형태에서, DMA 제어기 디바이스(16)와 DMA 제어기(44)의 각각이 요청에 따라 N 바이트의 정보를 전송하고, 여기서, N은 정수임을 가정한다. 예를 들어, 전송(60, 62, 및 64)은 3개의 분리된 순차적 채널 요청에 응답하여 발생한다. 전송(62)과 연관된 인터럽트 기간(66)과 같이, 전송이 인터럽트될 수 있슴을 주목해야 한다. 인터럽트 기간(66)은, 버스 중재자(28)에 의해 결정되는 것처럼, 버스 마스터쉽(matership)의 변화와 같이, 다수의 시스템 요인들로부터 결과가 될 수 있다. 각 N 바이트의 전송은 "반복(iteration)" 또는 "소 루프 반복(minor loop iteration)"으로서 지칭된다. "대 루프 반복(major loop iteration)" 내에서 다수의 소 루프 반복이 실행된다. '반복'이라는 용어의 사용이 동일한 소 루프 또는 대 루프 전송의 반복을 내포하거나 또는 요구하지 않음을 주목해야 한다. 그보다는, 이 컨텍스트의 반복은, 도 3의 채널 X와 같은 임의의 채널에 대해, 전송 동작이 일반적이므로, 복수의 연속적 전송이 발생한다는 사실을 일컫는다. 도 3의 예에서, 대 루프 반복(65) 내에, 3개의 소 루프 반복인 소 루프 반복(59, 61, 및 63)이 존재한다. 그러므로, 설명된 채널 동작은, 2개의 레벨의 네스팅(nesting)이 소 루프와 대 루프인 2-깊이 네스트된(2-deep nested) 전송 동작인 것으로 간주될 수 있다. 채널 요청 신호의 점선에 의해 나타난 것처럼 임의의 수의 소 루프 반복이 존재할 수 있슴을 이해해야 한다. 소 루프 반복의 완료 후에, 계류 요청을 갖는 더 높은 우선순위 채널로 시스템 버스(12)의 제어가 전송될 수 있다. 다른 경우, 소 루프 반복을 시작하기 위해 다른 채널을 트리거링(trigger)하기 위해 트리거링 이벤트가 발생될 수 있다. 또한, 대 루프 반복의 종료에 시스템 버스(12)의 제어가 전송될 수 있다.
전체 시스템 동작을 최적화하기 위해, 시스템이 실행하는 DMA 동작의 다양한 양태들의 외부 가시성은 매우 중요하다. 그러므로, 본 명세서에 DMA 동작과 관련된 실시간 추적 메시지의 세트가 제공된다.
도 4는, 도 3의 대 루프 반복의 제1 전송과 같은, 제1 전송의 시작을 식별하는 제1 실시간 DMA 제어기 메시지를 도시한다. 제1 전송 메시지는 선택적인 2개의 필드들을 갖춘 5개의 필드들을 갖는 것으로서 도시된다. 제1 필드는, 메시지의 유형이나 기능을 식별하는 TCODE(type code) 필드로서 식별된다. 단지 예로서, 110111의 6 비트 TCODE 값이 메시지를 "제1 전송의 시작" 메시지로서 식별하기 위해 선택된다. 제2 필드는, 일 형태에서, 4 내지 8 비트 길이이고, 무슨 채널 또는 무슨 유형의 채널에 메시지가 연관되었는지의 정보를 알려주는 채널 ID 필드이다. 제3 필드는 채널 상태 필드이고, 단지 예로서, 1 내지 8비트 길이일 수 있다. 채널 상태의 예들로는, 제1 전송의 시작에서 채널의 우선순위, 채널의 사용 인자(예를 들어, 사용 퍼센트), 채널에 대한 전송 오류가 이전에 발생했는지의 여부, 및 다수의 다른 상태나 정보 세부사항을 포함한다. 선택적인 제4 필드는, 채널에 얼마나 많은 정보가 전송되는지를 나타내는 전송 카운트이다. 이 필드는 채널과 연관된 각 소 루프 반복에 대한 전송 카운트 정보를 포함할 수 있고, 및/또는 채널과 연관된 대 루프 반복에 대한 전송 카운트 정보를 포함할 수 있다. 단지 예로서, 전송 카운트 필드는 8 내지 64 비트 길이일 수 있지만, 다른 비트 길이가 사용될 수도 있다. 또한 선택적인 제5 필드는 전송 서비스 지연이다. 전송 서비스 지연은, 전송 동작을 시작하기 위해 초기 채널 요청으로부터 얼마나 시간이 소요되는지를 식별한다. 환언하면, 이 필드의 값은, 지연(50)과 같이, 제1 전송과 연관된 인 터럽트 지연이다. 이 필드의 값은, 지연(50)과 연관된 시간 기간을 카운트하기 위해 디버그 모듈이나 다른 곳에 있을 수 있는 카운터(도시 생략)를 사용하여 측정될 수 있다. 일 형태에서, 전송 서비스 지연 필드는 8 내지 64 비트 길이일 수 있지만, 다른 비트 길이가 사용될 수도 있다.
도 5에는, 도 3의 소 루프 반복(59, 61, 및 63) 중의 임의의 것과 같은, 소 루프 반복의 시작을 식별하는 제2 실시간 DMA 제어기 메시지가 도시된다. 이 제2 전송 메시지는 선택적인 2개의 필드들을 갖춘 5개의 필드들을 갖는 것으로서 도시된다. 제1 필드는, 메시지를 '소 루프 반복의 시작' 메시지로서 식별하는 TCODE(type code) 필드이다. 단지 설명 목적으로, TCODE는 111000으로서 도시되지만, 다른 값과 비트 길이가 사용될 수도 있다. 제2 필드는 소 루프 반복의 시작과 연관된 채널을 식별하는 채널 ID 필드이다. 제3 필드는, 제1 메시지에 대해 위에 기재된 상태 정보와 같은, 채널의 상태 파라미터나 파라미터들을 식별하는 채널 상태 필드이다. 제4 필드는, 제1 메시지의 전송 카운트 필드에 대해 위에 기재된 바와 같이 채널이 얼마나 많은 정보를 전송할지를 식별하는 전송 카운트이다. 제5 필드는, 지연(50, 52, 및 54)과 같은 지연을 식별하는 전송 서비스 지연 필드이다. 또한, 각 필드에 제공되는 비트 길이는 단지 예일 뿐이다.
도 6에는, 도 3의 소 루프 반복(59, 61, 및 63) 중의 임의의 것과 같은, 소 루프 반복의 종료를 식별하는 제3 실시간 DMA 제어기 메시지가 도시된다. 이 제3 전송 메시지는 선택적인 2개의 필드를 갖춘 5개의 필드들을 갖는 것으로서 도시된다. 제1 필드는, 메시지를 '소 루프 반복의 종료' 메시지로서 식별하는 TCODE 필 드이다. 단지 예로서, TCODE는 111001로서 도시되지만, 다른 값이나 비트 길이가 사용될 수도 있다. 제2 필드는 소 루프 반복의 종료와 연관된 채널을 식별하는 채널 ID 필드이다. 제3 필드는, 제1 메시지에 대해 상술된 상태 정보와 같은, 채널의 상태 파라미터나 파라미터들을 식별하는 채널 상태 필드이다. 제4 필드는, 어느 소 루프 반복이 현재 시스템 버스 상에서 전송되고 있는지를 식별하는 반복 카운트이다. 제5 필드는, 소 루프 반복이 얼마나 오래 지속되었는지의 카운트 값인 반복 간격이다. 시스템의 임의의 장소에 위치되는 카운터(도시 생략)가 사용될 수 있지만, 카운터는 디버그 모듈 내에 있거나, 또는 거기에 가까이에 위치되는 것이 바람직하다. 또한, 각 필드에 제공되는 비트 길이는 단지 예일 뿐이다. 또한, 전체 소 루프가 전송 오류로 인해 정상적으로 완전히 완료되지 않아도 제3 전송 메시지가 생성되도록, 디버그 모듈(26)이 구성될 수 있다.
도 7에는, 도 3의 대 루프 반복(65)과 같은, 대 루프 반복의 완료를 식별하는 제4 실시간 DMA 제어기 메시지가 도시된다. 이 제4 전송 메시지는 선택적인 2개의 필드를 갖춘 5개의 필드들을 갖는 것으로서 도시된다. 제1 필드는, 메시지를 '소 루프 반복의 종료' 메시지로서 식별하는 TCODE 필드이다. 단지 예로서, TCODE는 111010으로서 도시되지만, 다른 값이나 비트 길이가 사용될 수도 있다. 제2 필드는 소 루프 반복의 종료와 연관된 채널을 식별하는 채널 ID 필드이다. 제3 필드는, 제1 메시지에 대해 상술된 상태 정보와 같은, 채널의 상태 파라미터나 파라미터들을 식별하는 채널 상태 필드이다. 제4 필드는, 제1 메시지의 전송 카운트 필드에 대해 상술된 바와 같이 채널이 얼마나 많은 정보를 전송했는지를 식별하는 전 송 카운트이다. 제5 필드는 대 루프 반복이 얼마나 오랫동안 지속되었는지의 카운트 값인 전송 간격 필드이다. 시스템의 임의의 곳에 위치되는 카운터(도시 생략)가 사용될 수 있지만, 카운터가 디버그 모듈(26) 내에 또는 그 가까이에 위치되는 것이 바람직하다. 또한, 각 필드에 제공되는 비트 길이는 단지 예일 뿐이다. 또한, 전체 대 루프가 전송 오류로 인해 정상적으로 완전히 완료되지 않아도 제4 전송 메시지가 생성될 수 있도록 디버그 모듈(26)이 구성될 수 있다.
도 8에는, 주기적으로 식별된 채널의 상태를 제공하는 제5 실시간 DMA 제어기 메시지가 도시된다. 이 주기적 메시징은 식별된 채널의 한 개 이상의 상태 기준을 제공하기 위해 기능한다. 이 제5 전송 메시지는 선택적인 필드들 중의 하나를 갖춘 4개의 필드들을 갖는 것으로서 도시된다. 제1 필드는 메시지를 '주기적인 상태' 메시지로서 메시지를 식별하는 TCODE 필드이다. 단지 설명 목적으로, TCODE는 111011로서 도시되지만, 다른 값들과 비트 길이도 사용될 수 있다. 제2 필드는, 제공되는 상태 정보와 연관되는 채널을 식별하는 채널 ID 필드이다. 제3 필드는, 제1 메시지의 논의와 연결하여 상술된 상태 정보와 같은, 채널의 상태 파라미터나 파라미터들을 식별하는 채널 상태 필드이다. 제4 필드는, 상태가 관련된 시점에서 현재 전송이 얼마나 멀리 진행했는지를 식별하는 현재 전송 카운트이다. 또한, 각 필드에 제공된 비트 길이는 단지 예일 뿐이다. 주기적 상태 메시지는 시스템에서 채널들의 상대적 진행을 결정하기 위해서 그리고 DMA 채널들의 채널 우선순위와 버스 마스터 우선순위의 수정을 허용하기 위해 사용될 수 있다. 주기적 상태 메시지가 생성되기 위해서, 그 기능이 아래 기재되는 레지스터의 프로그램가능 한 제어에 의해 인에이블(enable)된다. 그 기능이 인에이블될 때, 주기적 상태 메시지가 제공되는 타이밍은 구현에 특정하다. 주기적 상태 메시지는, 미리 결정되거나 미리 정의된 수의 시스템 클럭이나 버스 싸이클이 발생할 때마다 생성될 수 있다. 다른 경우, 주기적 상태 메시지는 시스템의 특정한 하드웨어 유선에 의해 결정되는 것처럼 고정된 주기에서 생성될 수 있다.
도 9는 한 개의 DMA 채널을 위한 제어 레지스터(70)이다. 단지 설명 형태로서, 제어 레지스터(70)는 5개의 DMA 실시간 메시지를 인에이블 또는 디세이블하는 5개의 비트들, 및 와치포인트(watchpoint)의 트리거의 생성을 인에이블 또는 디세이블하는 4개의 비트들을 갖는다. 일 형태에서, 각각이 제어 레지스터(70)와 유사한, 다양한 DMA 채널들을 위한 제어 레지스터들이 디버그 모듈(26) 내에 제공되어 위치된다. 제어 레지스터(70)는 채널 "CH0"로서 나타낸 DMA 채널을 위한 것이다. 채널 x로서 표현된, CHx, 임의의 채널에 대한 제어 비트 기능의 설명이 제어 레지스터(70)의 바로 아래에 있다. 제어 레지스터(70)의 제1 비트, 비트 0은 주기적 상태 메시지 기능을 인에이블한다. 비트 0이 어설트된 로직 1 값을 가질 때, 디버그 모듈(26)은 도 8에 도시된 것처럼 형식을 갖는 주기적 상태 메시지를 생성할 것이다. 유사한 방식으로, 제어 레지스터(70)의 5, 6, 7, 및 8 비트는 도 7, 6, 5, 및 4 각각의 메시지들을 인에이블하고 디세이블한다. 도 4 내지 도 8의 DMA 메시지들에 추가하여, 데이터 프로세싱 시스템(10)의 외부 분석을 위해 와치포인트의 트리거링을 인에이블하기 위해 제어 레지스터(70)가 기능한다. 본 명세서에 사용되는 것처럼, "와치포인트"라는 용어는 미리 결정된 간격 시스템 이벤트 그리고 언 제 그런 간격 시스템 이벤트가 발생하는지의 신호나 지시를 모니터링하는 것을 일컫는다. 제어 레지스터(70)의 1, 2, 3, 및 4 비트는 와치포인트 기능들을 인에이블하는 것과 연관된다. 이들 와치포인트들이 인에이블될 때, 그 이벤트가 언제 발생했는지를 지시하는 것에 반하여, 디버그 모듈(26)에 의해 디버그 포트로, 연관된 기능이 발생했다는 지시가 제공된다. 예를 들어, SOTWTE 비트는 연관된 채널에서의 전송의 시작을 결정하고, 그 전송이 발생했으면 디버그 포트에 신호를 어설트하거나 또는 메시지를 제공하는 기능을 인에이블한다. 도 9에 제공된 다른 와치포인트 비트들은, 반복 시작(소 루프나 대 루프가 정의될 수 있슴)이 발생했다는 것(비트 3), 반복의 종료(소 루프 또는 대 루프)가 발생했다는 것(비트 2), 및 전송의 종료(소 루프 또는 대 루프)가 발생했다는 것(비트 1)을 지시하기 위해 기능한다. 와치포인트 기능들의 선택적 사용이 다른 디버그 기능들을 인에이블하기 위해 사용될 수 있다. 예를 들어, "전송의 종료" 와치포인트는, 시스템 유닛(40), 시스템 유닛(41), 프로세서(42), 또는 데이터 프로세싱 시스템(10) 내의 임의의 다른 원하는 기능과 연관된 다른 디버그 기능을 트리거하기 위해 데이터 프로세싱 시스템(10) 내에서 사용될 수 있다. 제어 레지스터(70)의 기능은 원하는 애플리케이션 요구사항에 따라 도 9에 도시된 것으로부터 확장 또는 축소될 수 있다. 또한, 제어 레지스터(70)는 디버그 모듈(26) 내에보다는 데이터 프로세싱 시스템(10)의 다른 영역들에 위치될 수 있다.
도 10에서는, DMA 제어기 디바이스(16)의 원하는 수의 채널들의 각각에 대해 필드들을 갖는 주기적 상태 메시징 제어 레지스터(80)가 도시된다. 설명된 형태에 서, 4개의 채널들이 제공되고, 32 비트가 할당되지만, 임의의 수의 채널과 비트가 사용될 수 있다. CH0으로 표현된, 제1 채널 필드에서, 거기에 저장된 디지털 값은 디버그 모듈(26)에 의해 주기적 상태 메시지가 발생되는 비율을 제어한다. 그러므로, 주기적 상태 메시징 제어 레지스터(80)는 생성될 각 채널에 대한 프로그램가능하고 독립적인 보고 비율을 허용하기 위해 기능한다.
지금까지, DMA 동작 파라미터들에 특정한 메시지들의 형태로 정보를 제공하는 실시간 디버그 지원 방법과 구조가 제공되었슴을 이해해야 할 것이다. DMA 동작 파라미터 정보 내에는, 언제 DMA 전송이 시작하고 종료하는지, 언제 각 소 루프 반복 전송이 시작하고 종료하는지, 언제 대 루프 반복이 시작하고 종료하는지, 미리 결정된 DMA 채널의 주기적 상태, 및 각 DMA 채널 요청과 얼마나 많은 지연이 연관되는지를 아는 것이 포함된다. DMA 제어기 디바이스(16) 내의 기존 신호들에 기초하여 본 명세서에 기재된 DMA 디버그 메시지들이 실시간으로 생성되어, DMA 제어기 디바이스(16) 또는 프로세서(14)의 동작이 인터럽트되지 않는다. 본 명세서에 기재된 DMA 메시지들에 포함된 정보에 외부 액세스를 가짐으로써, 향상된 레벨의 SOC(system-on-chip) 디버그, 확인, 및 수행이 쉽게 달성될 수 있다.
일 형태에서, 통신 버스 및 통신 버스와 결합된 DMA 디바이스를 갖는 시스템과 그것의 동작의 방법이 제공되었다. DMA 디바이스는 정보 채널들을 제어하고, 정보 채널들의 각 채널은 채널 전송을 통해 시스템의 소스에서 목적지로 정보를 전송한다. 디버그 제어 회로는 DMA 디바이스와 결합되고, 디버그 제어 회로는 적어도 한 개의 미리 결정된 채널에 대한 DMA 채널 전송 경계의 존재를 식별하는 디버 그 메시지들을 제공한다. 또한, 디버그 제어 회로는, 디버그 메시지가 채널 전송 경계의 존재를 식별하는 DMA 디바이스에 의해 정보 채널들 중의 어떤 것이 제어되는지를 선택하는 프로그램가능한 제어 메커니즘을 포함한다. 디버그 제어 회로에 의해 제공되는 디버그 메시지들 중의 하나는 채널 전송이 적어도 한 개의 미리 결정된 채널에 대해 시작했슴을 나타낸다. 또한, 디버그 메시지들 중의 다른 하나는 적어도 한 개의 미리 결정된 채널의 상태 파라미터를 나타낸다. 일 형태에서, 상태 파라미터는 다음 것들 중의 하나이다: (1) 적어도 한 개의 미리 결정된 채널의 채널 우선순위, (2) 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 (3) 적어도 한 개의 미리 결정된 채널과 연결하여 전송 오류가 이전에 발생했는지의 여부. 다른 형태에서, 또한 디버그 메시지들 중의 하나는 DMA 디바이스에서 정보 전송을 시작하기 위한 요청의 수신과 실제로 그 정보의 전송 사이의 시스템 지연을 나타내는 채널 전송과 연관되는 시간 지연을 나타낸다. 다른 형태에서, 디버그 제어 회로에 의해 제공된 디버그 메시지들 중의 하나는 채널 전송이 적어도 한 개의 미리 결정된 채널에 대해 종료했슴을 나타낸다. 다른 형태에서, 디버그 제어 회로에 의해 제공된 디버그 메시지들 중의 하나는 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루프 반복들의 각각이 시작했슴을 나타낸다. 다른 형태에서, 디버그 제어 회로에 의해 제공되는 디버그 메시지들 중의 하나는 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루프 반복들의 각각이 종료했슴을 나타낸다. 다른 형태에서, 디버그 제어 회로에 의해 제공되는 디버그 메시지들 중의 하나는 적어도 한 개의 미리 결정된 채널의 주기적 상태를 나타낸다. 다른 경우, 시스템은 복수 개의 시 스템 유닛들을 갖도록 구성될 수 있고, 복수 개의 시스템 유닛들의 각각은 통신 버스와 결합될 수 있다. 다른 형태에서, 또한, 디버그 제어 회로는 디버그 메시지를 제공하는 복수 개의 디버그 모듈들을 포함하고, 복수 개의 디버그 모듈들의 각각은 복수 개의 시스템 유닛들 중의 미리 결정된 하나와 결합된다. 디버그 포트 로직은 디버그 포트에 디버그 메시지를 제공하는 복수 개의 디버그 모듈들과 결합된다.
다른 형태에서, 통신 버스와 통신 버스와 결합된 DMA 디바이스를 갖는 시스템과 그것의 동작 방법이 제공되어왔다. DMA 디바이스는 정보 채널들을 제어하고, 정보 채널들의 각 채널은 채널 전송을 통해 시스템의 소스에서 목적지로 정보를 전송한다. 디버그 제어 회로는 DMA 디바이스와 결합되고, 디버그 제어 회로는 적어도 한 개의 미리 결정된 채널에 대한 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지를 제공한다. 일 형태에서, 적어도 한 개의 상태 파라미터는 다음 것들 중에 적어도 하나이다: (1) 적어도 한 개의 미리 결정된 채널의 채널 우선순위, (2) 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 (3) 적어도 한 개의 미리 결정된 채널과 연결하여 전송 오류가 이전에 발생했는지의 여부. 또한, 디버그 제어 회로는 채널 전송이 시작했슴을 나타내는 디버그 메시지를 제공한다. 또한, 디버그 제어 회로는 채널 전송이 종료했슴을 나타내는 디버그 메시지를 제공한다. 디버그 제어 회로는 정보 채널들의 각각에 대한 디버그 메시지의 선택적 생성을 인에이블하기 위해 프로그램이 가능하다. 또한, 디버그 제어 회로는 적어도 한 개의 미리 결정된 채널의 미리 결정된 와치포인트 일 조건인 와치포인트 지시자를 생성하고, 그 미리 결정된 와치포인트 조건은 DMA 디바이스의 동작에 기초한 와 치포인트 조건이다. 또한, 디버그 제어 회로는 복수 개의 와치포인트 지시자를 생성하고, 이들 각각은 정보 채널들 중의 구별하는 하나의 와치포인트 조건을 나타낸다. 적어도 한 개의 미리 결정된 채널에 대한 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지의 제공을 인에이블하고 디세이블하는 제어 신호를 제어 레지스터에 저장한다. DMA 디바이스는, 대 루프 반복을 형성하는 복수 개의 소 루프 반복을 포함하는 동일 채널 내에 네스트된 정보 전송을 구성한다. 디버그 메시지 각각은 메시지 유형 필드, 채널 ID 필드, 및 상태 정보 필드를 포함하는 미리 결정된 비트 필드들을 갖는 복수 비트 메시지를 포함한다.
다른 형태에서, 통신 버스와 통신 버스와 결합된 DMA 디바이스를 갖는 시스템과 그 동작 방법이 제공된다. DMA 디바이스는 복수 개의 정보 채널들을 제어하고, 정보 채널들의 각 채널은 채널 전송을 통해 시스템에서 소스에서 목적지로 정보를 전송한다. 디버그 제어 회로는 DMA 디바이스와 결합된다. 디버그 제어 회로는 채널에 기초하여 프로그램이 가능하여 DMA 디바이스의 동작 파라미터들과 관련된 디버그 메시지를 선택적으로 제공한다. DMA 디바이스의 동작 파라미터들은 전송 경계가 발생했는지의 여부와 주기적 상태 정보 중의 적어도 하나에 관한 정보를 포함한다. 또한, 디버그 제어 회로는, DMA 디바이스에 의해 채널 전송 요청이 수신된 후에 채널 전송을 시작하는 DMA 디바이스의 시스템 지연과 관련된 지연 정보를 포함하는 적어도 한 개의 디버그 메시지를 제공한다.
개시된 실시예들에 다양한 수정이 만들어질 수 있슴이 명백해야 할 것이다. 예를 들어, 다양한 유형들의 프로세싱 기능들을 수행하는 다양한 상이한 유형의 데 이터 프로세싱 회로들 중의 임의의 것으로서 프로세스(14)가 구현될 수 있다. 임의의 유형의 주변 디바이스는, 시스템 버스를 통해, 부프로세서들을 포함하는, 프로세서(14)와 결합될 수 있다. 이 시스템은 다양한 상이한 비트 크기들 중의 임의의 것으로 구현될 수 있다. 임의의 유형의 저장 디바이스가 설명된 저장소, 레지스터, 및 메모리를 위해 사용될 수 있다. 메시지의 필드들의 순서는 임의의 방식으로 변경될 수 있다. 제어 레지스터의 제어 비트들의 순서는 변경될 수 있다.
특정 실시예들에 대해 이점, 다른 장점, 및 문제의 해결책이 상술되었다. 그러나, 이점, 장점, 문제의 해결책, 그리고 임의의 이점, 장점, 또는 해결책이 발생하거나 더 공표되도록 하는 임의의 요소가 일부 또는 전체의 청구항들의 중요한, 필수의, 또는 기본 특징이나 요소로서 해석되어서는 안 된다. 본 명세서에 사용된 바와 같이, "포함한다(comprises)", "포함하는(comprising)"이라는 용어들, 또는 그것의 임의의 다른 변형은 비배타적 포함관계를 망라하려고 의도되어서, 요소들의 리스트를 포함하는 프로세스, 방법, 제품, 또는 장치가 단지 이들 요소들만을 포함하는 것뿐만이 아니라 그런 프로세스, 방법, 제품, 또는 장치에 명백히 리스트되거나 고유하지 않은 다른 요소들도 포함할 수 있다. 본 명세서에 기재된 바와 같이 한 또는 하나의 (a or an)라는 용어들은 한 개 또는 한 개 이상으로서 정의된다. 본 명세서에 사용되는 바와 같이, 복수(plurality)라는 용어는 2개 또는 2개 이상으로서 정의된다. 본 명세서에 사용되는 바와 같이, 다른 하나(another)라는 용어는 적어도 제2 또는 그 이상으로서 정의된다. 본 명세서에 사용되는 바와 같이, 포함하는(including) 및/또는 갖는(having)이라는 용어들은 포함하는 (comprising)(즉, 개방 언어(open language))으로서 정의된다. 본 명세서에 사용된 바와 같이, 결합된(coupled)이라는 용어는, 직접적일 필요가 없고 기계적일 필요도 없지만, 접속된(connected)으로서 정의된다.

Claims (48)

  1. 시스템으로서,
    통신 버스;
    상기 통신 버스와 결합된 DMA(directed memory access) 디바이스 -상기 DMA 디바이스는 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해 상기 시스템의 소스에서 목적지로 정보를 전송함-; 및
    상기 DMA 디바이스와 결합된 디버그 제어 회로 -상기 디버그(debug) 제어 회로는 적어도 한 개의 미리 결정된 채널에 대한 DMA 채널 전송 경계의 존재를 식별하는 디버그 메시지들을 제공함-;
    를 포함하는 시스템.
  2. 제1항에 있어서, 상기 디버그 제어 회로는, 상기 디버그 메시지들이 채널 전송 경계들의 존재를 식별하는 상기 DMA 디바이스에 의해 정보 채널들 중의 어떤 것이 제어되는지를 선택하는 프로그램가능한 제어 수단을 더 포함하는 시스템.
  3. 제1항에 있어서, 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나가, 상기 적어도 한 개의 미리 결정된 채널에 대해 채널 전송이 시작했슴을 나타내는 시스템.
  4. 제3항에 있어서, 상기 디버그 메시지들 중의 하나는 또한 상기 적어도 한 개의 미리 결정된 채널의 상태 파라미터를 나타내는 시스템.
  5. 제4항에 있어서, 상기 상태 파라미터는, 상기 적어도 한 개의 미리 결정된 채널의 채널 우선순위, 상기 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 상기 적어도 한 개의 미리 결정된 채널과 관련된 전송 오류가 이전에 발생했는지의 여부 중의 하나를 포함하는 시스템.
  6. 제3항에 있어서, 상기 디버그 메시지들 중의 하나는 또한, 상기 DMA 디바이스에서 정보 전송을 시작하기 위한 요청의 수신과 실제로 상기 정보의 전송 사이의 시스템 지연을 나타내는 상기 채널 전송과 연관된 시간 지연을 나타내는 시스템.
  7. 제1항에 있어서, 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나는 상기 적어도 한 개의 미리 결정된 채널에 대해 채널 전송이 종료되었슴을 나타내는 시스템.
  8. 제1항에 있어서, 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나는 상기 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루프 반복들(minor loop iterations)의 각각이 시작했슴을 나타내는 시스템.
  9. 제1항에 있어서, 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나는 상기 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루프 반복들의 각각이 종료했슴을 나타내는 시스템.
  10. 제1항에 있어서, 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나는 상기 적어도 한 개의 미리 결정된 채널의 주기적 상태를 나타내는 시스템.
  11. 제1항에 있어서,
    각각이 상기 통신 버스와 결합되는 복수 개의 시스템 유닛들 -상기 디버그 제어 회로는 상기 디버그 메시지들을 제공하는 복수 개의 디버그 모듈들을 더 포함하며, 상기 복수 개의 디버그 모듈들의 각 모듈은 상기 복수 개의 시스템 유닛들 중의 미리 결정된 하나와 결합됨-; 및
    상기 복수 개의 디버그 모듈들과 결합되어 디버그 포트(debug port)에 상기 디버그 메시지들을 제공하는 디버그 포트 로직
    을 더 포함하는 시스템.
  12. 시스템으로서,
    통신 버스;
    상기 통신 버스와 결합된 DMA 디바이스 -상기 DMA 디바이스는 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해 상기 시스템에서 소스에서 목적지로 정보를 전송함-; 및
    상기 DMA 디바이스와 결합된 디버그 제어 회로 -상기 디버그 제어 회로는 적어도 한 개의 미리 결정된 채널에 대해 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지들을 제공함-
    를 포함하는 시스템.
  13. 제12항에 있어서, 상기 적어도 한 개의 상태 파라미터는, 상기 적어도 한 개의 미리 결정된 채널의 채널 우선순위, 상기 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 상기 적어도 한 개의 미리 결정된 채널과 관련된 전송 오류가 이전에 발생했는지의 여부 중의 하나를 더 포함하는 시스템.
  14. 제12항에 있어서, 또한 상기 디버그 제어 회로는 채널 전송이 시작했슴을 각각이 나타내는 디버그 메시지들을 더 제공하는 시스템.
  15. 제12항에 있어서, 상기 디버그 제어 회로는 채널 전송이 종료했슴을 각각이 나타내는 디버그 메시지들을 제공하는 시스템.
  16. 제12항에 있어서, 상기 디버그 제어 회로는 상기 정보 채널들의 각각에 대해 상기 디버그 메시지들의 선택적 생성을 인에이블(enable)하기 위해 프로그램이 가 능한 시스템.
  17. 제12항에 있어서, 상기 디버그 제어 회로는 또한 상기 적어도 한 개의 미리 결정된 채널의 미리 결정된 와치포인트(watchpoint) 조건인 와치포인트 지시자를 생성하고, 상기 미리 결정된 와치포인트 조건은 상기 DMA 디바이스의 동작에 기초한 와치포인트 조건인 시스템.
  18. 제12항에 있어서, 상기 디버그 제어 회로는 또한 복수 개의 와치포인트 지시자들을 생성하고, 이들 각각은 상기 정보 채널들 중의 구별하는 하나의 와치포인트 조건을 나타내는 시스템.
  19. 제12항에 있어서, 상기 적어도 한 개의 미리 결정된 채널에 대한 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지들의 제공을 인에이블하고 디세이블(disable)하는 제어 신호를 저장하는 제어 레지스터를 더 포함하는 시스템.
  20. 제12항에 있어서, 상기 DMA 디바이스는 대 루프 반복(major loop iteration)을 형성하는 복수 개의 소 루프 반복들을 포함하는 동일한 채널 내의 네스트된(nested) 정보 전송을 구현하는 시스템.
  21. 제12항에 있어서, 상기 디버그 메시지들 각각은 메시지 유형 필드, 채널 ID 필드, 및 상태 정보 필드를 포함하는 미리 결정된 비트 필드들을 갖는 복수 비트 메시지를 포함하는 시스템.
  22. 시스템으로서,
    통신 버스;
    상기 통신 버스와 결합된 DMA 디바이스 -상기 DMA 디바이스는 복수 개의 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해 상기 시스템에서 소스에서 목적지로 정보를 전송함-;및
    상기 DMA 디바이스와 결합된 디버그 제어 회로 -상기 디버그 제어 회로는 채널당 기준으로 프로그램이 가능하여 상기 DMA 디바이스의 동작 파라미터들에 관련되는 디버그 메시지들을 선택적으로 제공함-
    를 포함하는 시스템.
  23. 제22항에 있어서, 상기 DMA 디바이스의 동작 파라미터들은 전송 경계가 발생했는지의 여부와 주기적 상태 정보 중의 적어도 하나에 관련된 정보를 포함하는 시스템.
  24. 제22항에 있어서, 상기 디버그 제어 회로는 또한, 상기 DMA 디바이스에 의해 채널 전송 요청이 수신된 후에 채널 전송을 시작하는 상기 DMA 디바이스의 시스템 지연과 관련된 지연 정보를 포함하는 적어도 한 개의 디버그 메시지를 제공하는 시스템.
  25. 시스템에서 실시간 디버깅 지원의 방법으로서,
    통신 버스를 제공하는 단계;
    상기 통신 버스와 DMA 디바이스를 결합하는 단계 -상기 DMA 디바이스는 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해 상기 시스템에서 소스에서 목적지로 정보를 전송함-;
    상기 DMA 디바이스와 디버그 제어 회로를 결합하는 단계; 및
    상기 정보 채널들 중의 적어도 한 개의 미리 결정된 채널의 DMA 채널 전송 경계의 존재를 식별하는 디버그 메시지들을 제공하는 단계
    를 포함하는 방법.
  26. 제25항에 있어서, 상기 디버그 메시지들이 채널 전송 경계들의 존재를 식별하는 상기 DMA 디바이스에 의해 상기 정보 채널들 중의 어떤 것이 제어되는지를 프로그램하고 선택하는 단계를 더 포함하는 방법.
  27. 제25항에 있어서, 상기 적어도 한 개의 미리 결정된 채널에 대해 채널 전송이 시작되었슴을 나타내기 위해 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  28. 제27항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 상태 파라미터를 더 나타내기 위해 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  29. 제28항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 채널 우선순위, 상기 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 상기 적어도 한 개의 미리 결정된 채널과 관련된 전송 오류가 이전에 발생했는지의 여부 중의 하나를 나타내기 위해 상기 상태 파라미터를 사용하는 단계를 더 포함하는 방법.
  30. 제27항에 있어서, 상기 DMA 디바이스에서 정보 전송을 시작하기 위한 요청의 수신과 실제로 상기 정보의 전송 사이의 시스템 지연을 나타내는 상기 채널 전송과 연관된 시간 지연을 더 나타내기 위해 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  31. 제25항에 있어서, 상기 적어도 한 개의 미리 결정된 채널에 대해 채널 전송이 종료되었슴을 나타내기 위해 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  32. 제25항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루 프 반복들의 각각이 시작했슴을 나타내기 위해 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  33. 제25항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 복수 개의 소 루프 반복들의 각각이 종료했슴을 나타내기 위해 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  34. 제25항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 미리 결정된 상태 파라미터를 주기적으로 나타내기 위해 상기 디버그 제어 회로에 의해 제공되는 상기 디버그 메시지들 중의 하나를 사용하는 단계를 더 포함하는 방법.
  35. 제25항에 있어서,
    각각이 상기 통신 버스와 결합되는 복수 개의 시스템 유닛들을 제공하는 단계;
    상기 디버그 메시지들을 제공하는 복수 개의 디버그 모듈들을 제공하는 단계 -상기 복수 개의 디버그 모듈들의 각각은 상기 복수 개의 시스템 유닛들 중의 미리 결정된 하나와 결합됨-; 및
    디버그 포트에 상기 디버그 메시지들을 제공하기 위해 상기 복수 개의 디버그 모듈들과 디버그 포트 로직을 결합하는 단계
    를 더 포함하는 방법.
  36. 시스템에서 실시간 디버그 지원의 방법으로서,
    통신 버스를 제공하는 단계;
    상기 통신 버스와 DMA 디바이스를 결합하는 단계 -상기 DMA 디바이스는 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해서 상기 시스템에서 소스에서 목적지로 정보를 전송함-; 및
    적어도 한 개의 미리 결정된 채널에 대해 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지들을 제공하기 위해 상기 DMA 디바이스와 디버그 제어 회로를 결합하는 단계
    를 포함하는 방법.
  37. 제36항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 채널 우선순위, 상기 적어도 한 개의 미리 결정된 채널의 사용 인자, 및 상기 적어도 한 개의 미리 결정된 채널과 관련된 전송 오류가 이전에 발생했는지의 여부 중의 하나로서 상기 적어도 한 개의 상태 파라미터를 구현하는 단계를 더 포함하는 방법.
  38. 제36항에 있어서, 채널 전송이 시작했슴을 나타내는 디버그 메시지들을 제공하는 단계를 더 포함하는 방법.
  39. 제36항에 있어서, 채널 전송이 종료했슴을 나타내는 디버그 메시지를 제공하 는 단계를 더 포함하는 방법.
  40. 제36항에 있어서, 상기 정보 채널들의 각각에 대해 상기 디버그 메시지의 선택적 생성을 인에블링하는 단계를 더 포함하는 방법.
  41. 제36항에 있어서, 상기 적어도 한 개의 미리 결정된 채널의 미리 결정된 와치포인트 조건인 와치포인트 지시자를 생성하는 단계를 더 포함하고, 상기 미리 결정된 와치포인트 조건은 상기 DMA 디바이스의 동작에 기초한 와치포인트 조건인 방법.
  42. 제41항에 있어서, 복수 개의 와치포인트 지시자들을 생성하는 단계를 더 포함하고, 이들의 각각은 상기 정보 채널들 중의 구별되는 하나의 와치포인트 조건을 각각 나타내는 방법.
  43. 제36항에 있어서, 상기 적어도 한 개의 미리 결정된 채널에 대한 적어도 한 개의 상태 파라미터를 주기적으로 제공하는 디버그 메시지들의 제공을 인에이블하고 디세이블하는 제어 신호를 저장하기 위한 제어 레지스터를 사용하는 단계를 더 포함하는 방법.
  44. 제36항에 있어서, 동일한 채널 내에 네스트된 정보 전송을 구현하는 단계를 더 포함하고, 상기 네스트된 정보 전송의 각각은 대 루프 반복을 형성하는 복수 개의 소 루프 반복들을 포함하는 방법.
  45. 제36항에 있어서, 메시지 유형 필드, 채널 ID 필드, 및 상태 정보 필드를 포함하는 미리 결정된 비트 필드들을 갖는 복수 비트 메시지로서 상기 디버그 메시지들의 각각을 구현하는 단계를 더 포함하는 방법.
  46. 시스템에서 실시간 디버그 지원의 방법으로서,
    통신 버스를 제공하는 단계;
    상기 통신 버스와 DMA 디바이스를 결합하는 단계 -상기 DMA 디바이스는 복수 개의 정보 채널들을 제어하고, 상기 정보 채널들의 각 채널은 채널 전송을 통해 상기 시스템에서 소스에서 목적지로 정보를 전송함-; 및
    상기 DMA 디바이스와 디버그 제어 회로를 결합하는 단계 -상기 디버그 제어 회로는 채널당 기반으로 프로그램가능하여 상기 DMA 디바이스의 동작 파라미터들과 관련된 디버그 메시지들을 선택적으로 제공함-
    를 포함하는 방법.
  47. 제46항에 있어서, 전송 경계가 발생했는지의 여부와 주기적 상태 정보 중의 적어도 하나에 대한 정보로서 상기 DMA의 동작 파라미터를 구현하는 단계를 더 포함하는 방법.
  48. 제46항에 있어서, 상기 DMA 디바이스에 의해 채널 전송 요청이 수신된 후에 채널 전송을 시작하는 상기 DMA 디바이스의 시스템 지연과 관련된 지연 정보를 포함하는 적어도 한 개의 디버그 메시지를 제공하는 단계를 더 포함하는 방법.
KR1020067014758A 2004-01-23 2004-12-21 Dma 디바이스를 위한 실시간 디버그 지원과 그 방법 KR101045475B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/764,110 2004-01-23
US10/764,110 US6920586B1 (en) 2004-01-23 2004-01-23 Real-time debug support for a DMA device and method thereof

Publications (2)

Publication Number Publication Date
KR20060126734A true KR20060126734A (ko) 2006-12-08
KR101045475B1 KR101045475B1 (ko) 2011-06-30

Family

ID=34740159

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067014758A KR101045475B1 (ko) 2004-01-23 2004-12-21 Dma 디바이스를 위한 실시간 디버그 지원과 그 방법

Country Status (6)

Country Link
US (2) US6920586B1 (ko)
JP (1) JP4531773B2 (ko)
KR (1) KR101045475B1 (ko)
CN (1) CN100440154C (ko)
TW (1) TWI354885B (ko)
WO (1) WO2005073855A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920586B1 (en) * 2004-01-23 2005-07-19 Freescale Semiconductor, Inc. Real-time debug support for a DMA device and method thereof
EP1899828B1 (en) * 2005-06-30 2009-11-25 Freescale Semiconductor, Inc. Device and method for arbitrating between direct memory access task requests
WO2007003986A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc. Device and method for controlling an execution of a dma task
US20090125647A1 (en) * 2005-06-30 2009-05-14 Citibank, N.A. Device And Method For Executing A DMA Task
EP1899825B1 (en) * 2005-06-30 2009-07-22 Freescale Semiconductor, Inc. Device and method for controlling multiple dma tasks
US7757028B2 (en) * 2005-12-22 2010-07-13 Intuitive Surgical Operations, Inc. Multi-priority messaging
US8054752B2 (en) 2005-12-22 2011-11-08 Intuitive Surgical Operations, Inc. Synchronous data communication
US7756036B2 (en) * 2005-12-22 2010-07-13 Intuitive Surgical Operations, Inc. Synchronous data communication
US7865704B2 (en) 2006-03-29 2011-01-04 Freescale Semiconductor, Inc. Selective instruction breakpoint generation based on a count of instruction source events
US8160084B2 (en) * 2006-09-22 2012-04-17 Nokia Corporation Method for time-stamping messages
US8402258B2 (en) 2008-07-25 2013-03-19 Freescale Semiconductor, Inc. Debug message generation using a selected address type
US7958401B2 (en) * 2008-07-25 2011-06-07 Freescale Semiconductor, Inc. Debug trace messaging with one or more characteristic indicators
US8024620B2 (en) * 2008-07-25 2011-09-20 Freescale Semiconductor, Inc. Dynamic address-type selection control in a data processing system
US8250250B2 (en) * 2009-10-28 2012-08-21 Apple Inc. Using central direct memory access (CDMA) controller to test integrated circuit
US8638792B2 (en) * 2010-01-22 2014-01-28 Synopsys, Inc. Packet switch based logic replication
US8397195B2 (en) * 2010-01-22 2013-03-12 Synopsys, Inc. Method and system for packet switch based logic replication
JP5528939B2 (ja) * 2010-07-29 2014-06-25 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
US8713370B2 (en) * 2011-08-11 2014-04-29 Apple Inc. Non-intrusive processor tracing
US9256399B2 (en) * 2013-06-27 2016-02-09 Atmel Corporation Breaking program execution on events
US9645870B2 (en) 2013-06-27 2017-05-09 Atmel Corporation System for debugging DMA system data transfer
US9830245B2 (en) 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
US9552279B2 (en) * 2013-08-16 2017-01-24 Nxp Usa, Inc. Data bus network interface module and method therefor
US20160299859A1 (en) * 2013-11-22 2016-10-13 Freescale Semiconductor, Inc. Apparatus and method for external access to core resources of a processor, semiconductor systems development tool comprising the apparatus, and computer program product and non-transitory computer-readable storage medium associated with the method
US9419621B1 (en) 2015-09-18 2016-08-16 Freescale Semiconductor, Inc. System on chip and method of operating a system on chip
US11231987B1 (en) * 2019-06-28 2022-01-25 Amazon Technologies, Inc. Debugging of memory operations
US11099966B2 (en) * 2020-01-09 2021-08-24 International Business Machines Corporation Efficient generation of instrumentation data for direct memory access operations

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688166A (en) 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
JPH0758475B2 (ja) * 1989-05-24 1995-06-21 株式会社日立製作所 端末装置のデータ収集システム
DE69033092D1 (de) * 1989-09-08 1999-06-10 Auspex Systems Inc Santa Clara Betriebssystemaufbau mit mehreren verarbeitungseinheiten
KR960016648B1 (ko) * 1993-12-29 1996-12-19 현대전자산업 주식회사 커먼 컨트롤 중복 스위치 방법
US6085037A (en) 1996-09-13 2000-07-04 Concord Camera Corp. APS camera structure for film preloading
US6145007A (en) * 1997-11-14 2000-11-07 Cirrus Logic, Inc. Interprocessor communication circuitry and methods
US6145122A (en) 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US6032269A (en) * 1998-06-30 2000-02-29 Digi-Data Corporation Firmware recovery from hanging channels by buffer analysis
EP1157324A4 (en) * 1998-12-18 2009-06-17 Triconex Corp PROCESS AND DEVICE FOR PROCESSING CONTROL USING A MULTIPLE REDUNDANT PROCESS CONTROL SYSTEM
US6654801B2 (en) * 1999-01-04 2003-11-25 Cisco Technology, Inc. Remote system administration and seamless service integration of a data communication network management system
US6567933B1 (en) * 1999-02-19 2003-05-20 Texas Instruments Incorporated Emulation suspension mode with stop mode extension
US6615370B1 (en) * 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6816924B2 (en) * 2000-08-10 2004-11-09 Infineon Technologies North America Corp. System and method for tracing ATM cells and deriving trigger signals
US6470071B1 (en) 2001-01-31 2002-10-22 General Electric Company Real time data acquisition system including decoupled host computer
US7013084B2 (en) * 2001-02-28 2006-03-14 Lambda Opticalsystems Corporation Multi-tiered control architecture for adaptive optical networks, and methods and apparatus therefor
US7058858B2 (en) * 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
US7103008B2 (en) * 2001-07-02 2006-09-05 Conexant, Inc. Communications system using rings architecture
WO2003034225A2 (en) 2001-10-12 2003-04-24 Pts Corporation Debugging of processors
US6877114B2 (en) 2002-02-14 2005-04-05 Delphi Technologies, Inc. On-chip instrumentation
US6920586B1 (en) * 2004-01-23 2005-07-19 Freescale Semiconductor, Inc. Real-time debug support for a DMA device and method thereof

Also Published As

Publication number Publication date
JP4531773B2 (ja) 2010-08-25
JP2007522550A (ja) 2007-08-09
US6920586B1 (en) 2005-07-19
TW200602852A (en) 2006-01-16
US7287194B2 (en) 2007-10-23
CN100440154C (zh) 2008-12-03
TWI354885B (en) 2011-12-21
KR101045475B1 (ko) 2011-06-30
US20050193256A1 (en) 2005-09-01
CN1906589A (zh) 2007-01-31
WO2005073855A1 (en) 2005-08-11

Similar Documents

Publication Publication Date Title
KR101045475B1 (ko) Dma 디바이스를 위한 실시간 디버그 지원과 그 방법
US8069274B2 (en) System and method for serial data communications between host and communications devices, and communications device employed in the system and method
JP4182801B2 (ja) マルチプロセサシステム
JP2007527071A (ja) マルチバーストプロトコルデバイスコントローラ
US20120266029A1 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
KR101380364B1 (ko) 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유
EP2064628B1 (en) A method for time-stamping messages
IT202000006322A1 (it) Sistema di elaborazione comprendente un’interfaccia periferica seriale con code, relativo circuito integrato, dispositivo e procedimento
US9208008B2 (en) Method and apparatus for multi-chip reduced pin cross triggering to enhance debug experience
US11442878B2 (en) Memory sequencer system and a method of memory sequencing using thereof
JP2012521588A (ja) 回路構成におけるデータ交換を制御するための回路構成、および方法
JP2008015876A (ja) データアクセスシステム、データアクセス装置、データアクセス集積回路及びデータアクセス方法
US20040054843A1 (en) Configuration and method having a first device and a second device connected to the first device through a cross bar
US7231568B2 (en) System debugging device and system debugging method
US20120011295A1 (en) Method and apparatus for wireless broadband systems direct data transfer
US20090177928A1 (en) Apparatus, Method and Computer Program Product for Generating Trace Data
JP2020140380A (ja) 半導体装置及びデバッグシステム
JP6188895B1 (ja) 車載制御プログラムの実行時データ取得方法および車載制御装置
JP2009163531A (ja) 割り込み管理機構およびマイクロコンピュータ
US20230418472A1 (en) Methods and apparatus to schedule memory operations
CN111177048A (zh) 一种ahb总线的设备及其进行数据流传输的方法
JP6416488B2 (ja) 半導体装置
JP4609540B2 (ja) マルチプロセサシステム
JP2023056507A (ja) トラフィックをルーティングするクロスバーを備えた集積回路装置

Legal Events

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

Payment date: 20140515

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee