KR20060009255A - 집적 회로용 진단 회로 - Google Patents

집적 회로용 진단 회로 Download PDF

Info

Publication number
KR20060009255A
KR20060009255A KR1020057019586A KR20057019586A KR20060009255A KR 20060009255 A KR20060009255 A KR 20060009255A KR 1020057019586 A KR1020057019586 A KR 1020057019586A KR 20057019586 A KR20057019586 A KR 20057019586A KR 20060009255 A KR20060009255 A KR 20060009255A
Authority
KR
South Korea
Prior art keywords
bus
diagnostic
functional
circuit
operable
Prior art date
Application number
KR1020057019586A
Other languages
English (en)
Other versions
KR101016711B1 (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 KR20060009255A publication Critical patent/KR20060009255A/ko
Application granted granted Critical
Publication of KR101016711B1 publication Critical patent/KR101016711B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • 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
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

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

Abstract

본 발명은 기능 버스를 통해서 상호 연결되는 복수 개의 기능 회로를 구비한 집적 회로에, 기능 버스를 통한 버스 트랜잭션을 사용하여 진단 동작을 수행하는 진단 버스 마스터 회로가 제공된다. 이 진단 동작은 집적 회로의 정상 속도 동작 동안에 실시간으로 수행되어 더욱 정확한 진단 결과를 생성할 수 있다. 진단 버스 마스터 회로는 진단 동작의 일부로서 메모리로부터 데이터 값을 판독하거나 데이터 값을 메모리에 기록하는데 특히 유용하다.
기능 버스, 기능 회로, 버스 트랜잭션, 진단 동작, 진단 버스 마스터 회로

Description

집적 회로용 진단 회로{DIAGNOSTIC CIRCUIT FOR AN INTEGRATED CIRCUIT}
본 발명은 집적 회로 분야에 관한 것이다. 보다 구체적으로, 본 발명은 집적 회로용 온보드(on-board) 진단 회로에 관한 것이다.
집적 회로용 온보드 진단 회로를 제공하는 것은 공지되어 있다. 이러한 공지 회로의 일례에는 영국의 캠브리지에 소재하는 에이알엠사(ARM Limted)에 의해서 몇 가지 마이크로프로세서 설계로 사용되는 JTAG 타입 컨트롤러에 의해서 제어되는 직렬 스캔 체인(serial scan chain)이 있다. 공지의 스캔 체인 타입 진단 회로가 안고 있는 문제점은 데이터를 직렬 스캔 입력(스캔인)하고 데이터를 직렬 스캔 출력(스캔아웃)하는 것이 실시간 및/또는 효율적인 진단 동작을 가능하게 할 정도로 충분히 빠르지 않다는 점이다. 특히, 직렬 진단 데이터가 직렬 스캔 체인에 스캔인되고 직렬 스캔 체인으로부터 스캔아웃될 수 있도록 집적 회로를 그의 정상 동작 속도 아래로 저속화시키거나 집적 회로의 동작을 중단시켜야 할 필요가 있을 수 있다. 집적 회로를 그의 정상 동작 속도 아래에서 동작시키면, 수행되는 진단 동작은 집적 회로의 실제 기능 동작을 진정으로 대표하는 것이 아니다. 이것은 소정의 장애가 자신을 최대 동작 속도에서 드러낼 뿐이고, 집적 회로가 진단 직렬 스캔 체인의 사용을 수용하도록 동작하여야 하는 낮은 속도에서는 보이지 않게 되는 경우일 수 있다. 또한, JTAG를 디버그를 위한 프로세서에 대한 통신용으로서 사용하는 것 은 시스템 자원에의 액세스에 대하여 적어도 2 단계 접근법을 생성하게 된다.
본 발명의 일 양태는,
데이터 처리 동작을 수행하도록 동작할 수 있는 복수 개의 기능 회로와;
상기 복수 개의 기능 회로 간에 통신을 제공하도록 동작할 수 있는 적어도 하나의 기능 버스와;
상기 복수 개의 기능 회로의 실시간 동작 동안에 버스 트랜잭션 요청을 상기 적어도 하나의 기능 버스를 통해서 상기 복수 개의 기능 회로 중 하나 이상에 발행함으로써 상기 복수 개의 기능 회로 중 적어도 하나의 기능 회로에서 진단 동작을 수행하도록 동작할 수 있는 진단 버스 마스터 회로를 포함하는 집적 회로를 제공한다.
본 발명은 집적 회로의 기능 버스에 결합한 진단 버스 마스터 회로를 제공한다. 이 진단 버스 마스터 회로는 버스 트랜잭션을 기능 버스에 발행하여 진단 동작을 수행하는데 사용될 수 있다. 이 버스 트랜잭션은 소정의 데이터를 사용하여 기능 회로를 자극하여, 기능 회로 또는 이들 액션 또는 다른 액션의 조합으로부터 데이터를 취득하는 역할을 할 수 있다. 이 기술은, 집적 회로 전반에 걸쳐 분산되어 있는 래치에 값을 로드하기 위해서 직렬 스캔 체인 주위에 데이터를 클록할 필요가 없기 때문에, 기능 회로들 간의 기능 구조에 대한 현행 규정을 사용하여, 실시간으로 동작할 수 있는 진단 신호 자극 및 취득을 위한 삽입 지점을 제공한다. 기능 버스를 통한 진단 액세스는 사용상 제약이 따를 것으로 생각될 수도 있겠지만, 실제로, 현대의 시스템 온 칩(system-on-chip)형의 집적 회로 내에서 수행하는 것이 요 망되는 진단 검사 타입의 대부분은 AMBA 또는 AHB 버스와 같은 표준 버스를 통해서 다양한 기능 회로들 간의 적절한 통신에 대한 어라운드 체킹(around checking)을 순환시킨다. 상이한 기능 회로들이 이미 개별적으로 검사되어 스탠드얼론 아이템들로서 입증되었고, 새로운 집적 회로의 설계 시에 중요한 것이 이들 아이템들과 상호 연결되어 기능 버스를 통해서 적절히 통신하는 경우가 종종 있다. 이 기술은 비교적 방해 없이 그리고 감소한 오버헤드로 이러한 진단 타입의 동작을 신속하게 제공하는 데 매우 적합하다.
진단 버스 마스터 회로는 디버깅 검사 타입 동작 또는 제조 검사 타입 동작의 형태로 진단 동작을 수행할 수 있다. 또한, 진단 버스 마스터 회로는 제조 프로그래밍 타입 동작, 제조 구성 타입 동작, 현재 프로그래밍 타입 동작 및 현장 구성 타입 동작을 수행하는데 사용될 수 있다. 이것에 의해서, 진단 버스 마스터 회로는 순수한 진단 분야 이외에서의 유익한 효과에 재사용될 수 있고, 이것에 의해서 그의 관련 오버헤드를 유리하게 분산시킬 수 있다.
본 발명의 바람직한 실시예에서, 진단 버스 마스터 회로는 진단 동작을 수행하기 이전에 자신에게 권한을 부여하는 인증 동작을 수행하도록 구성될 수 있다. 이 특징은 진단 특징이 비밀 암호 키 등과 같은 보안 데이터에의 액세스 권한을 부적절하게 얻을 수 있는 보안 시스템에 매우 유리하다. 진단 버스 마스터 회로가 사용 이전에 자신부터 인증하도록 보장함으로써, 이 메커니즘을 부적절하게 사용하는 것이 제한될 수 있다. 구체적으로, 인증은 진단 버스 마스터 회로가 비밀 키(외부 소스에 의해서 제공된 것)를 포함하는 등의 소정 기준에 부합하는 인증 요청을 발 행할 것을 요구하는 형태를 취할 수 있다. 이러한 요구는 진단 버스 마스터 회로가 기능 회로 요소에 액세스할 수 있기 이전에 요구되는 것이다.
기능 버스에 액세스를 제공하는 것에 추가하여, 본 발명의 바람직한 실시예는 진단 버스 마스터 회로가 기능 버스를 통해서 정상적으로 액세스할 수 없는 데이터에의 액세스 권한을 얻을 수 있게 하는 전용 진단 버스를 포함한다. 따라서 전용 진단 버스는, 정상 동작 동안에 기능 회로들 간에 정상적으로는 전달될 것이 요구되지 않는, 기능 버스를 통해서 정상적으로 액세스될 수 없는 기능 회로 내부의 상태에 액세스하도록 구성될 수 있다. 이 특징은 이 전용 진단 버스에 대한 액세스가 인증 동작에 대해서 제한될 수 있도록 한 전술의 인증 기술과의 결합 시에 특히 유용하다. 또한, 이러한 버스 분리 방법은 이들 추가 데이터 값/레지스터의 악의적 사용 및 임시적 사용을 방지한다.
일부 집적 회로에서 상이한 버스 프로토콜을 가질 수 있는 다수의 기능 버스가 사용되는 것이 이해될 것이다. 바람직한 실시예는 특정 버스 프로토콜을 사용하여 개개의 기능 버스와 통신하는 일을 담당하는 복수 개의 버스 인터페이스 회로를 상기 진단 버스 마스터 회로에 제공함으로써 이 일을 수행하게 한다. 선택 메커니즘을 사용하여 어떤 버스를 액세스하게 할 수 있다.
진단 버스 마스터 회로는 외부 신호 프로토콜을 사용하여, 예컨대 적절한 인터페이스 카드를 구비하는 컴퓨터와 같은 외부 진단 장치와 통신한다. 이러한 통신을 용이하게 하기 위해서, 진단 버스 마스터 회로는, 이러한 통신 링크를 제공하고, 요구되는 바와 같은 통신 프로토콜들 간을 적응시키는 외부 인터페이스 회로를 포함한다.
또한, 본 발명의 바람직한 실시예에서, 진단 버스 마스터 회로는 외부 진단 환경을 집적 회로 클록 환경으로부터 효과적으로 결합해제하는 방식으로 클록 도메인들 간에 신호를 전송하도록 동작할 수 있다.
진단 버스 마스터 회로는 메모리, 주변 장치 또는 다른 장치 내에 저장된 데이터 값과 같은, 기능 버스에 결합한 장치 내부에 저장된 데이터 값의 조작에 특히 잘 어울린다. 이들 데이터 값은 진단 버스 마스터 회로를 사용하여 로드, 저장, 복사 및 검증될 수 있다.
이러한 타입의 사용에 특히 유용한 예는 버스에 결합한 플래시 메모리를 포함하고, 진단 버스 마스터 회로는 플래시 메모리 프로그래밍 프로토콜을 사용하여 이 플래시 메모리를 프로그램하는데 사용된다. 이러한 플래시 메모리를 프로그램하는 것은 통상, 실행 시간 동작(run time operation)이고, 집적 회로의 범용 기능 회로를 사용하면 효과적이고 유효하게 가능해질 수 없다.
이제, 본 발명의 실시예에 대해서 첨부 도면을 참조하여 단지 일례로서 설명한다.
도 1은 외부 진단 장치에 결합한 온보드(on-board) 진단 시스템을 포함하는 집적 회로를 개략적으로 나타내는 개략도이다.
도 2는 버스 트랜잭션을 발행하여 집적 회로에서 진단 동작을 실행하게 하는 진단 버스 마스터 회로를 내장한 집적 회로를 개략적으로 나타내는 도면이다.
도 3 내지 도 5는 진단 버스 마스터 회로 기술의 양태를 나타내는 도면이다.
도 6 및 도 7은 진단 버스 마스터 및 경계 체인 제어(boundary chain control)의 형태를 개략적으로 나타내는 도면이다.
도 1은 외부 진단 장치(4)에 연결한 집적 회로(2)를 나타내고 있다. 외부 진단 장치(4)와 집적 회로(2) 간의 연결은 JTAG 또는 SWJ와 같은 양방향 직렬 인터페이스를 통해서 이루어진다. 집적 회로(2) 내에서, 인터페이스 회로(6)는 양방향 신호를 수신한다. 이 직렬 신호로부터 디코드된 데이터와 이 직렬 신호로부터 디코드된 컨트롤 신호는 진단 회로(8)에 전달되고, 이 진단 회로(8)는 이들 컨트롤 신호 및 데이터에 따라서 집적 회로(2)의 다른 요소들에서 진단 동작을 수행한다. 또한, 데이터 및 컨트롤 신호는 다시 집적 회로(2)에서부터 양방향 직렬 신호를 통해서 외부 진단 장치(4)에 전달될 수도 있다. 집적 회로(2)는 시스템 온 칩(SoC)형의 집적 회로인 것이 통상적이다.
집적 회로(2) 내의 기능 회로에는 프로세서 코어(10), 코프로세서(12), 메모리(14), 직렬 UART 장치(16) 등이 포함된다. 이들 기능 회로는 기능 회로들을 연결하는 기능 버스(18)(예컨대, AMBA 버스, AHB 버스 또는 다른 버스)에 의해서 연결된다. 진단 회로(8)는 집적 회로(2) 내의 블록으로서 개략적으로 나타내어져 있다. 진단 회로는 다양하고 상이한 형태를 취할 수 있고, 또한 예컨대 집적 회로(2)의 주변 요소, 즉 임의의 기능 요소 주위에 또는 요구되는 바와 같은 임의의 기능 요소 내에 확장하는 직렬 스캔 체인을 포함하는 것이 이해된 것이다. 또한, 진단 회 로(8)는 BIST 장치 등과 같은 다른 형태로 되어 있어도 좋다.
사용 시에, 외부 진단 장치를 사용하는 엔지니어는 양방향 직렬 인터페이스를 따라서 그리고 인터페이스 회로(6)를 통해서 집적 회로(2)에 전달된 컨트롤 신호 및 데이터에 응답하여 집적 회로(2)에서 수행되도록 임의의 진단 동작을 명령할 것이다. 결과 데이터는 인터페이스 회로(6)를 통해서 양방향 인터페이스를 따라 외부 진단 장치(4)에 다시 전달될 것이다.
도 2는, 프로세서 코어(54), 코프로세서(56), 플래시 메모리(58), 입출력 회로(60), 메모리(62) 등을 포함하는 복수 개의 기능 회로를 내장한 집적 회로(52)(예컨대, SoC 집적 회로)를 개략적으로 나타내고 있다. 프로세서 코어(54), 플래시 메모리(58), 입출력 회로(60) 및 메모리(62)는 공통 기능 버스(64)를 통해서 연결되고, 공통 기능 버스(64)는 예컨대 ARM AMBA AHB 버스 또는 다른 시스템 버스일 수 있다. 이 공통 기능 버스(64)는 관련 버스 프로토콜을 가지며, 기능 회로들 간에 데이터 및 제어 트랜잭션을 전달하도록 보통의 마스터/슬레이브 타입 장치에 사용된다.
진단 버스 마스터 회로(66)는 버스 트랜잭션을 사용하여 진단 동작을 수행하도록 제공된다. 이들 버스 트랜잭션은 데이터 또는 제어 값을 기능 회로에 공급하는 것일 수도 있고, 기능 회로로부터 데이터를 수신하는 것일 수도 있다. 진단 버스 마스터 회로(66)는 선택 사항인 인증 회로(68)를 통해서 공통 기능 버스(64)에 연결된다. 또한, 진단 버스 마스터 회로(66)는 전용 진단 버스(70)(예컨대, 사설 AMBA 버스 또는 주문형 사설 버스)에도 연결되고, 전용 진단 버스(70)는, 이 예에 서는, 프로세서 코어(54) 및 코프로세서(56)에 전용 진단 액세스 권한을 제공한다. 이 전용 진단 버스(70)는, 정상적으로는 공통 기능 버스(64)에 결합하지 않고 순수하게 진단 목적을 위해서 전용 진단 버스(70)에 노출하는 데이터 값에 대한 액세스 권한을 제공할 수 있다.
인터페이스 회로(72)와 진단 회로(74)는 진단 버스 마스터 회로(66)를 외부 진단 장치(도시하지 않음)에 결합하도록 제공된다. 인터페이스 회로(72)는 외부 진단 장치에 의해서 사용되는 외부 프로토콜, 예컨대 전술한 양방향 직렬 통신을 지원한다. 진단 버스 마스터 회로(66)는 진단 목적을 위해서 트랜잭션이 발행되어야 하는 개개의 버스의 버스 신호 프로토콜을 지원하는 역할을 담당한다.
선택 사항인 인증 회로(68)는 인증 단계가 통과되었을 때 진단 버스 마스터 회로(66)가 기능 버스 또는 공통 기능 버스(64)의 부분에 액세스할 수 있게 하는 것만을 수행하는 기능을 제공한다. 이 인증 단계는 소정의 비밀 키에 부합하는 적절한 키를 진단 버스 마스터 회로(66)에서부터 인증 회로(68)에 공급하는 것일 수 있다. 따라서, 적절하게 권한 부여된 비밀 키 소유자만이 인증 회로(68)를 통해서 공통 기능 버스(64)에 액세스할 수 있는 방식으로 진단 버스 마스터 회로(66)를 작동시킬 수 있다. 그 결과, 기능 회로 내의 비밀 데이터 또는 다른 민감한 자료가 보호될 수 있다. 인증은 다른 버스 액세스가 자유롭게 사용될 수 있는 상태에서 특별 허가된 슬레이브(privileged slave)에의 액세스와 같은 일부 버스 액세스를 제어하는데 사용될 수 있다.
집적 회로(52)와 외부 진단 장치는 상이한 클록 도메인에서 동작할 수 있다 는 것이 이해될 것이다. 인터페이스 회로(72)는 이들 2개의 클록 도메인 간을 잇는 수단을 효과적으로 제공한다.
진단 버스 마스터 회로(66)는 메모리, 주변 장치 또는 다른 장치와 같은 장치에 데이터 값을 로드하거나, 이들 장치로부터의 데이터 값을 저장하거나, 이들 장치 간에 데이터 값을 복사하거나, 이들 장치에 저장된 데이터를 검증하는 기능을 수행하는 버스 트랜잭션을 발행하는데 사용될 수 있다.
또한, 진단 버스 마스터 회로(66)는 플래시 메모리 프로그래밍 프로토콜에 따라서 플래시 메모리(58)를 프로그램하는데 사용될 수도 있다. 이것은, 일부 메커니즘은 집적 회로(52) 내의 플래시 메모리(58)를 프로그램하는 일부 메커니즘을 제공할 필요가 있기 때문에, 그의 규정과 관련된 오버헤드를 분산시키는 진단 버스 마스터 회로(66)의 비검진 용례이다.
바람직한 실시예에 대하여 상세하게 설명한다.
용어 및 약자
다음의 설명에서는 다음의 표와 같이 정한 용어 및 약자를 사용한다.
용어 설명
JTAG 스캔 체인에 대한 직렬 인터페이스를 제어하는 4-6 유선 인터페이스에 대한 IEEE Joint Test Access Group 규약. JTAG는 검사는 물론 디버깅에도 사용된다. SWJ는 기저를 이루는 디버그 JTAG 모델에 기초를 둔다. 스캔 TAP은 JTAG의 검사 부분에 기초를 둔다.
에뮬레이터 디버그를 위해서 칩에 장착된 실행 제어 박스(HW 부분)를 가리키는데 사용되는 틀린 용어. 정상의 에뮬레이터는 JTAG를 기초로 한다. SWJ 인터페이스에 연결된 박스는 과거의 유래 때문에 에뮬레이터라고도 부른다.
AMBA 칩 내의 ARM 버스 표준
AHB 정상 메모리 액세스를 위한 AMBA 고속 인터페이스(APB와 대별되는 용어)
APB 저속 액세스를 위한 AMBA 주변 인터페이스
AHB Lite 다중 매스터가 없고 또한 완전 버스트 모드 및 그의 관련 시그널링이 없는 AMBA AHB의 스트립 다운 버전을 가리킨다.
다중 매스터 상이한 매스터들이 인터리브 방식으로 버스를 액세스하는 버스 로크(허용)를 획득할 수 있는 AMBA 버스 공유 구성(AMBA Lite에 없는 것)
다중 세그먼트, 다층화 버스를 액세스 시에 제어되는 세그먼트로 분할하는 AMBA 구성. 이것에 의해서, 로컬 매스터는 로크 오버헤드를 감소시킬 수 있다.
중재자, 중재 다중 매스터를 대체하는 버스 모델. 중재자는 버스에 대한 스트림 액세스 권한을 다투는 매스터들 중에서 선택을 행한다. MCU와 비대칭 다중 프로세서 코어 레이아웃에서 더욱 일반적으로 사용된다. 이것은 적절하게 구성되면 버스 허용 모델보다 더욱 양호한 성능을 제공할 수 있다.
플래시 특수 프로그램 방법을 사용하여 기록될 수 있는 판독 전용 메모리 형태. 이것에 의해서, MCU는 장치 후 가공으로 태운 코드 및 리터럴(literal)을 가질 수 있다. 로우 엔드 MCU의 경우, 이것은 애플리케이션에 의해서가 아닌 생산 시에만 행해질 것이다(따라서, 갱신/유지보수 동안에 외부 도구에 의해서 행해질 수 있다).
실장된 플래시 프로세서와 동일한 칩에 있는 플래시 셀. 외부 칩과 반대되는 것. 플래시 장치는 실장 플래시를 다이 사이즈 면에서 매우 비싸게 만드는 실장형 컨트롤러(MCU)를 구비하는 것에 주목한다.
개요
DBT(Debug Bus Tap)는 AMBA 버스에 연결하는 작은 JTAG TAP이다. DBT는 TJAG, SWJ, 다이렉트 포트 도는 다른 수단으로부터 액세스될 수 있고, AMBA 버스 이외의 버스에서 동작할 수 있다. 시스템 설계에 따라서, 버스 연결은 다중 매스터 버스 설계를 위한 버스 매스터링 블록일 수 있고, 또는 중재자에 의해서 관리되는 경우에는 AMBA Lite 블록일 수 있다.
메모리 TAP는 ARM 코어가 실행중이거나 디버그로 인해 중지되어 있거나 리셋으로 인해 유지되어 있는 동안에 (L1 캐시 이외의) 메모리 시스템에 액세스할 수 있다. 이것에 의해서, TAP는 다수의 목적을 위해서 시스템에 매우 폭넓게 사용될 수 있다.
○ 코어가 부팅 하기 전에 시스템을 출두시켜 검사한다. 이것은 모든 플래시 시스템에서 특히 중요하지만, 칩 레벨 검사에 대한 함축도 포함한다.
○ 프로세서 JTAG 모델을 사용하여 메모리에 더욱 고속의 다운로드와 더욱 고속의 판독도 가능하다.
○ 코어를 중지시키는 일 없이 실행 시스템(running system)에서 메모리 및 주변 레지스터에 대한 판독/기록 액세스를 행한다. 이것은 침입을 갖지만, 고정되어 있고 작다(메모리에의 액세스가 일정하지 않지만, JTAG TCK 타이밍에 의해서 바운드 되기 때문).
○ 코어 클록 속도의 변화와 무관하게 메모리에 액세스할 수 있다(저속 슬립(sleep))
○ 버스에는 보이는 경우에 플래시를 프로그램하는데 사용될 수 있다(그러나, 일부 FPGA 부트 플래시는 AMBA 슬레이브가 아닌 경우에 도달 가능한 것이 아닐 수 있다).
○ 코어의 일부가 아닌 디버그 레지스터의 구성/제어. 이것은 다수의 TAP이 상이한 디버그 블록을 지원하는 것에 대한 필요성을 제거한다. 디버그 레지스터는 내부 메커니즘에 대한 필요성을 제거하기 위해서 코어에 의해 수출(export)될 수 있다. 이것은 실행 동안에 액세스를 가능하게 하고, 더욱 명확한 설계를 가능하게 한다.
메모리 TAP는 순차적인 것(예컨대, 다운로드)이든 비순차적인 것이든 매우 고속의 액세스를 가능하게 하도록 높게 최적화된다. 또한, 단일 위치에 대해 반복되는 폴링(polling)에 대해서도 최적화되고, (버스 액션이 판정론적이기 때문에) 시간 측정을 지원하는 에뮬레이터에 의해서 그 폴링에 대하여 정밀한 시간 스탬핑을 제공할 수 있다. 또한, 고속 플래시 다운로드는 플래시 프로그래밍 알고리즘의 작은 부분을 버스 래퍼(bus wrapper)에 실장 함으로써 용이하게 된다.
디버그 시스템 버스 TAP 컴포넌트
메모리 TAP은 7개의 기본 과제에 관한 것을 목적으로 한다.
1. 초고속 메모리 다운로드(및 업로드)를 가능하게 하는 것. 10 MHz에서, 고속 에뮬레이터의 경우에는 초당 3 메가바이트의 다운로드가 합리적이고, 저속 에뮬레이터의 경우에는 초당 600 킬로바이트의 다운로드가 합리적이다.
2. ARM 코어가 (디버그로 인해) 중지되어 있거나, 실행 중이거나, 슬립핑 중이거나, 리셋으로 인해 유지되어 있거나, 또는 다른 상태에 있는 동안에 메모리에 대한 액세스를 가능하게 하는 것. 이것은 이 컴포넌트가 시스템을 더욱 볼 수 있게 하는 것을 의미한다.
3. 버스를 통한 판독 및 기록 시에 장애를 더욱 명확하게 처리할 수 있게 하는 것. 이 메커니즘은 중단(abort)을 깨끗하게 처리하고, 결과로서 프로세서 상태를 변경시키지 않는다. 메모리 액세스가 프로세서 코어를 통해서 행해지는 경우, 그의 상태는 모든 액션에 의해서 충격을 받지만, 장애에 의해서는 더욱 충격을 받는다. DBT는 버스 장애 후에는 지정된 바와 같이 신호를 보내는 것 이외에 자신을 상태를 변경시키지 않는다.
4. 플래시를 (코어를 사용하지 않고) 직접 프로그램 가능하게 하는 것. 이것은 플래시를 그의 최대 레이트(플래시 자체의 속도 그대로)로 프로그래밍할 수 있게 할 뿐만 아니라, 프로세서가 아직 리셋 상태에 있는 동안에 플래시를 프로그램할 수도 있다(따라서, 중요한 부트 코드를 프로그램하는데 사용될 수 있다). FPGA 비트 부트 플래시 또는 다른 장치에 사용되는 플래시가 버스에서 보이는 경우, 상기 요소들을 프로그램하는 것에도 마찬가지로 사용될 수 있다. 선택 사항인 플래시 지원 없이도, DBT는, 에뮬레이터가 (시간 만료된 플래시 장치에 대하여) 액세스들 간의 예측 가능한 시간 지연을 발생할 수 있는 한, 직접 플래시 프로그래밍에 사용되거나, 강제 검증(pushed verify)을 이용한 워드 단위 배치 방식으로 기록될 수 있다.
5. 디버그 용으로만 별도로 설정한 로컬 세그먼트에 액세스하는데 사용될 수 있는 것. 즉, DBT는 디버그 전용 버스에 맞추어질 수 있다(또한, 범용의 시스템 버스에 맞추어져도 좋다). 또한, 이것은 디버그 컴포넌트 및 일반 컴포넌트 모두에 대한 ASIC 특정 디버그 레지스터를 수출하는데 사용될 수 있고, CAN 버스 주변 장치는 디버그의 용이화를 위해서 일부 레지스터를 이 세그먼트에 수출할 수 있다.
6. 타겟 SW(예컨대, 모니터와 RTOS 에이전트)와의 통신 경로로서 사용될 수 있는 것. 상기 5와 달리, 이것은 메인 버스에서도 마찬가지로 행해질 수 있다. 따라서, RTOS 디버그 에이전트는 (예컨대, RTOS가 DSP에서 실행하고 있는 경우에도) 이것을 사용하여 액세스할 수 있다. DCC(ARM 디버그 통신 채널 레지스터)와는 달 리, 이것은 버퍼링을 가능하게 한다. 인터럽트 드라이브가 있고 일부가 메모리 위치에 일치하는 경우에, 호스트 및 타겟 SW는 간단한 핸드쉐이크를 사용하여 서로 통신하게 된다. 메시지의 크기는 필요한 만큼 될 수 있고, 타겟 SW는 RAM에 기록한 후에 다른 활동으로 진행하므로, 멀어지지 않는다(예컨대, CP14에서 대기하고 있다).
7. 추적 데이터를 높은 레이트로 오프로드하는데 사용될 수 있는 것. AHB에 맵핑되는 1칩 추적 버퍼는 이 방법을 사용하여 매우 높은 레이트로 오프로드될 수 있다. 또한, 채워져 있기도 하지만 드레인될 수 있는 추적 버퍼의 경우, (초당 3-4 메가바이트와 같은 몇몇 대역폭 제한으로) 연속 콜렉션을 얻을 수 있다.
에이전트/모니터 통신 (Attention 및 ACK )
DBT는 프로세서 코어가 실행하고 있는 동안에 직접 메모리 액세스(모니터가 아님)에서 다운로드와 액세스하는데 유용하고, 또한 프로세서 코어가 실행하고 있는 동안에 타겟의 에이전트와 통신하는데 유용하다. 에이전트 통신은 패킷을 RAM에 기록하고, Attention 비트를 갖는 그의 완결 신호를 보낸 후, 발생할 ACK 신호/비트를 대기함으로써 작용을 수행한다. 그 후, 이것을 다시 판독할 수 있다. 이 모델의 이점은 모든 패킷에 인터럽트가 가해질 뿐이라는 것이다(그리고, 그 후에도 폴링은 패킷 단위로만 할 수 있고, 버퍼링은 무료이다). 패킷의 크기는 고정되지 않지 않고, 프로토콜 및 에이전트 또는 모니터의 선택에 의해서 판정된다.
Attention 신호를 (인터럽트로서) 코어에 연결하는 선택과 코어로부터 다시 (GPIO로서) ACK 신호를 연결하는 선택은 시스템의 설계에 달려 있다. 이것이 소정 등급의 프로세서 용도와 애플리케이션 용도에 강하게 장려되는 것이 가능하다.
통신하는 메인 에이전트는 직접 디버그(straight debug)를 위한 모니터, 및 RTOS 디버그를 위한 스레드(thread)일 것이다(RSD(Running System Debug) 모드).
플래시 메모리 지원
선택 사항인 플래시 메모리 지원은 시스템에 내장된 플래시를 고속 프로그맹 가능하도록 제공된다. 메커니즘은 사전기록(pre-write) 어드레스/데이터와 경우에 따라서는 사후기록(post-write) 어드레스/데이터에 대해서 마스크 ROM 제약을 부가함으로써 작용한다. 또한, 이것은 필요 시에 즉시 검증 작업을 지원할 수 있다(그러나, 일반적으로는 전체 블록을 기록한 후에 다시 되돌아가 검증하는, 즉 고속이면서 더욱 안전한 것이 바람직하다). 강제 검증(Pushed Verify)(모델)의 경우, 검증 단계는 매우 빠르다.
또한, 플래시 모델은 외부 메커니즘으로부터의 현장 플래시 재프로그래밍 시에 허용될 것이다(예컨대, 엔진 제어를 위한 프로그래밍 제약에 대한 정비 공장에서의 기구적 갱신). 이것은 플래시 자체를 전혀 변경시키지 않는 애플리케이션에 유용할 수 있다.
DBT에 플래시 지원 기능을 갖게 하는 일반적인 이유는 크든 작든 이것이 플래시를 매우 고속으로 프로그래밍하는 것을 가능하게 하기 때문이다. 이것은 디버깅 시간을 고속화한다. 많은 플래시 장치에서, 사전기록과 데이터 기록 사이의 시간은 소정 기간 이내에 있어야 하고, 그렇지 않으면 그 시간은 시간 만료될 것이다. 이것은 JTAG 에뮬레이터를 통한 직접 프로그래밍이 불가능하다는 것을 의미한 다. DBT 플래시 지원 기능이 있으면, 이것은 문제가 되지 않는다.
캐시 발행 및 TCM
DBT는 버스를 볼 수 있을 뿐이다. 이것은 부수적인(secondary) 세그먼트 모델에 대한 규약이 있지만, L1 캐시 안을 볼 수 없다. DBT가 L2 캐시 앞에 위치한 경우(즉, 시스템 설계 선택), L2 캐시를 볼 수 있을 뿐이다. 또한, 밀결합 메모리(TCM: Tightly Coupled Memory)에도 문제가 있다.
L1 캐시의 경우, 발행은 소정의 환경 하에서 발생할 뿐이다.
■ 코드를 다운로드 할 때, "I" 캐시는 새로운 데이터로 다시 로드되도록 클리어/무효화되어야 한다. 다운로드의 경우, 이것은 통상적으로 문제가 되지 않을 것이다(코어는 중지되지 않고, 에뮬레이터/런컨트롤이 캐시 클리어링을 처리할 것이기 때문이다).
■ 데이터를 다운로드 할 때, "D" 캐시는 미리 플러시(재기록의 경우) 되어야 하고, 또는 기록하는 경우에는 이전 또는 이후에 무효화 되어야 한다(또는 코어에 의해서 변형되어야 한다). 다운로드의 경우, 이것은 (개괄적으로 전술한 바와 같이) 통상적으로 문제가 되지 않을 것이다.
■ 타겟이 실행하고 있는 동안 어떤 위치를 폴링 할 때, 라이트백(write-back) 캐시 라인이 없는 경우, 이 위치는 보일 수 있다(따라서, 이 위치는 비캐시 영역 또는 라이트스로(write-through) 캐시 영역에 있을 수 있다). 따라서, 여전히 라이트백에 의해서 폴링 하는 것이 가능하지만, (애플리케이션에 의한 미사용으로 인해 얼마나 오래 전에 캐시가 플러시 되어 있는 지에 기초하여) 비판정론적 기간 의 지연이 존재할 것이다.
■ 타겟이 실행하고 있는 동안 위치를 수정할 때, 캐시 되어 있으면 이 위치는 애플리케이션에 영향을 미치지 않을 것이다. 캐시가 클리어 될 때까지 변경이 선택되지 않을 것이다(라이트백과 캐시의 변경 시에, DBT 수정은 분실될 수 있다).
TCM에 대해서, 몇몇 형태가 듀얼 포트로 되어 있지 않으면, 메모리는 DBT에게 전혀 보이지 않을 것이다. 예컨대, TCM도 AMBA 슬레이브인 경우, 또는 이것이 AHB 슬레이브로서 둘러싸인(wrapped) 외부 DMA 포트를 포함하고 있는 경우, DBT는 TCM에 액세스할 수 있다. 대안은 다음의 3가지 방법 중 하나로 액세스를 제공하는 시스템 모델을 통해서 지원하는 것이다.
1. TCM 래퍼(TCM wrapper)는 외부 포트(예컨대, DMA 포트)를 포함하고, 그 후, 이 외부 포트는 DBT에 사용 가능해진다. 이것은 AMBA 버스를 볼 수 있게 하거나 DBT 내의 대안의 메모리 개념을 사용함으로써 행해질 수 있다.
2. TCM은 ARM과 함께 DBT에 다중화(mux)된다. 이것은 중재가 없으므로 ARM 코어가 중지된 경우에만 사용될 수 있다. 경로 문제를 피하기 위해서 그 인터페이스를 등록할 필요가 있을 수 있다. 이 모델은 낮은 비용으로 액세스를 제공하지만, 메모리는 프로세서가 실행되고 있을 때 액세스 될 수 없게 될 것이다.
3. TCM은 몇몇 중재 형태(DBT에 액세스하는 일이 발생하면 코어를 대기시키는 상태)로 DBT에 다중화된다. 이것은 코어가 실행하고 있는 동안 액세스를 허용하는 것을 제외하고 상기 2와 동일하다. 이 모델의 소요가 DBT 사용에 정당화될 것인지는 불분명하다.
DBT 지원이 없으면, TCM은 코어를 지원하고 그의 JTAG 메커니즘(또는 모니터와 같은 다른 수단)을 통해서 액세스함으로써 액세스 될 수 있을 뿐이다.
MMU /MPU 및 가상 어드레스
DBT 컴포넌트는 물리 어드레스(버스 어드레스)를 볼 뿐이다. 디버거는 가상 어드레스와 물리 어드레스 간에 요구되는 맵핑을 수행하는 역할을 한다. MMU/MPU를 사용하여 보호 및 캐시 제어를 행하는 애플리케이션의 경우, 이것은 이슈가 아니다(코어 내의 모든 어드레스 X에는 버스 상에도 어드레스 X가 있다). MMU를 사용하여, 가상 어드레스와 물리 어드레스가 일치하는 것인 상황을 생성하는 애플리케이션의 경우는 4가지 상황이 있다.
1) 위치를 동적으로 리맵핑(re-mapping) 하는 상황(실행 동안에 맵핑이 변경되는 것을 의미한다). 가상 위치는 "프로세스"를 위한 상이한 물리 위치에 맵핑 된다. 이 상황은 프로세스들 간의 접촉(별칭은 태스크)을 피하는 방법으로서 프로세스 모델 OS에 의해서 사용된다. 이 경우, 디버거는 대개 이 상황을 OS 자체로부터 또는 페이지 테이블로부터 찾을 수 있다. 그러나, 맵핑은 시간 경과에 따라서 변할 수 있으므로, 코어가 실행하도록 허용되는 동안 이들 위치에 액세스하는 것에는 위험이 존재한다.
2) 정적으로/1회 맵핑 하는 상황(맵핑이 부팅 시에 설정되고 그 상태를 유지하는 것을 의미한다). 가상 위치는 주변 장치 또는 다른 버스 오브젝트를 "일반적인(common)" 장소에 맵핑 시킨다. 이 상황은 페이지 테이블 조사에 의해서 판정될 수 있을 뿐이다. 이 상황은 매우 일반적인 것은 아니지만, 디버거는 이 테이블을 판독하여 지원하여야 할 것이다. 어떤 ARM 코어인가에 따라서, 코어가 실행하고 있는 동안 페이지 테이블이 있는 장소를 판정할 수 있다(스캔 체인에 의해서 CP15를 판독). 페이지 테이블이 버스에서 보이면(TCM에 대한 논의를 참조), DBT는 디버거가 페이지 테이블을 판독하여 맵핑을 판정하는 것을 가능하게 할 수 있다. 또한, 오브젝트 파일이 이 맵핑에 관한 정보를 포함하는 것도 가능하다.
3) 페이지 장애발생 영역(page faulting area)이 생기는 상황. 이 페이지 장애발생 영역은 판독 시에 복사, 드문드문 있는 매트릭스/어레이, 맵핑 처리된 파일(또는 등가물), 플래시로부터의 코드 로드 요구 등을 비롯한 다양한 목적에 사용된다. 이들 구성은 모두, 원하는 것과 요구되는 것에 따라서 변한다. 디버거는 무엇이 적절한 동태인지를 알기 위해서 메모리 처리 정황을 이해할 필요가 있다(디버거로부터의 페이지 장애(page fault) 발생은 적절하지 않은 경우가 종종 있다). 몇몇 경우에, 디버거는 데이터가 어느 곳으로부터 오는 지(예컨대, 플래시)를 알고 있으므로, DBT는 데이터에 직접 액세스하는데 사용될 수 있다. 일반적으로, 이러한 종류의 메모리는 코어가 중지되어 있는 때에 처리될 수 있을 뿐이다.
4) 더욱 넓은 어드레스를 생성하는 상황. 이 방법의 가장 일반적인 사용(ASID, 도메인 또는 다른 확장 모델 중 어느 것이든)은 가상 위치와 물리 위치가 상이할 것을 필요로 하지 않지만, 이 메커니즘은 스와프 인 블록(swap-in block) 등을 생성하는데 사용될 수 있다. 이 경우에도, 디버거는 맵핑될 규칙을 알아야 할 필요가 있다.
케이스 2만이 코어 기반의 액세스 모델(JTAG 또는 모니터)에 대한 논점 (issue)이 아니라는 것을 주목하여야 한다. 나머지 논점들도 존재하고, 이들은 어떤 액세스 방법이 사용되는 지에 상관없이 디버거에 의해서 다루어져야 한다.
또한, 당장에 대부분의 설계가 시스템 레벨에서 리맵핑(칩 인에이블 및 칩 셀렉터 등)을 사용하는 것은 주목할 가치가 있다. 새로운 ARM 코어가 더욱 직접적으로 MMU 특징을 지원함에 따라서, 더욱 많은 설계가 이 효과를 위해서 코어에 의존할 수 있다. 따라서, 디버거는 이들 논점을 다루어야 할 것이고, 코어는 중지하는 일 없이 이 정보에 대한 액세스를 가능하게 할 필요가 있을 것이다.
액세스
JTAG 또는 등가물에서는 IR/DR 트랜잭션 세트를 사용하여 DBT에 액세스 된다.
IR은 상이한 전체 사용법 중에서 선택하는데 사용된다.
○ 그 밖의 JTAG: BYPASS(0xF), IDCODE(0x0A), JTAG 요구 액션(이들은 무시될 수 있다)
○ TAP이 로컬 세그먼트에 있는 때의 로컬 메모리 액세스(0x01)
○ 사용되는 버스 연결 타입과 무관하게 정상 버스 가시성의 글로벌 메모리 액세스(0x02)
○ ARM 코어에서 오래된 스캔 모델에의 액세스를 위한 스캔(0x03 및 0x04). 이것은 아르곤(Argon) 및 V6 등급 코어에 예약된 것이다. 아르곤형 코어를 제공하는 것은 ARM7/9/10/11 코어의 랩퍼(wrapper)로서 사용될 수 있다. 또한, 이것을 사용하여 경계 스캔 검사를 하는 것도 가능하다(디버그는 관련 없음).
모든 메모리 동작은 1개의 IR(블로벌 또는 로컬)을 사용하여 액세스 되고, 따라서 모든 동작은 DR에 기초를 두고 있다. 이 모델은 DR을 4 종류의 요청, 즉 제어, 어드레스, 판독 및 기록으로 분할하는 것이다. 총 DR은 항상 34 비트이다.
DR 동작은 1회에 판독 및 기록될 수 있도록 작용한다. CaptureDR 샘플 데이터는 대개 이전 동작으로부터 얻은 결과이다. UpdateDR에 의해서 기록된 데이터는 4가지 요청 타입 중 하나를 조작할 것이다.
모듈성
DBT는 부분들로 분할되고, 이들의 대부분은 선택 사항이다. 도 1은 이 개념을 예시한 것이다. 실제로 요구되는 것은 명령 블록뿐이다. 선택 사항인 블록은 다음의 사용 방법에 의해서 판정된다.
■ 다른 수단을 사용하여 액세스 되는 경우에는 TAP이 필요하지 않다. 예컨대, SWJ와 결합한 때에는 SWJ 컴포넌트가 DBT를 직접 구동하기 때문에 TAP이 필요하지 않다.
■ 현재의 ARM EmbeddedICE 로직(프리아르곤 코어에서 디버그 모니터를 구현하도록 제안된 모델) 또는 검사 스캔 체인을 둘러싸는 때에는 스캔 체인 TAP 레지스터만이 필요하다.
■ 다양한 버스 조정은 필요에 따라서만 사용된다. 다중 매스터(완전 AMBA) 버스 조정은 다중 매스터 시스템에서 사용된다. 단순 AMBA Lite 버스 조정은 중재자가 있는 MCU에서 사용된다. AMBA Lite 버스 조정과 단순 중재자의 결합은 중재자가 없는 MCU에서 사용될 수 있다(단순 버스 신호는 ARM 액세스를 중재/유지하도록 대기 상태 드라이브와 다중화한다)
■ 추가 특징은 포함될 수도 있고 포함되지 않을 수도 있다. 이 추가 특징에는 플래시 프로그래밍, Attention 신호 출력, ACK 신호 수신, 와이드 버스 액세스, 대체 버스 액세스(로컬 대 시스템) 등이 포함된다. 호스트는 어떤 사용도구들이 인터페이스로부터 (IDCODE, 제어 레지스터 및 다른 선택 사항인 사이드 레지스터를 통해서) 직접 제공되는지를 알려 줄 수 있다. 몇몇 특징은 그들을 인에이블링하여 그들이 인에이블되는 것으로 판독하는 지를 확인함으로써 검출되고, 다른 특징은 IDCODE 부분 번호에 표시된다.
모듈성이 너무 많은 것을 피하는 것에 많은 관심을 기울였다는 것을 주목하는 것이 중요하다. 즉, 모듈성에 대한 대가는 복잡성(가능한 조합이 너무 않은 것) 및 오버헤드(상이한 조각들과 함께 플러깅 하는 것)와 관련이 있다. 일반적인 방법은 모듈성을 BDT에서 다음의 5가지 타입으로 쪼개는 것이다.
■ 자연스런 블록. DBT는 도 1에 나타낸 바와 같이 3 개의 블록 레벨로 분할된다. 따라서, SWJ에서 최상 블록(TAP)를 제거하거나, 어떤 버스 랩퍼가 자연스런 조정인지를 선택한다.
■ 어떤 코어인지와 어떤 버스인지에 기초하는 타입. 예컨대, 64 비트 지원을 갖는 것은 64 비트 데이터를 지원하는 코어/버스의 경우에만 가능하다.
■ 플래시와 같은 시스템 지정 세부요소에 기초하는 타입. 선택 사항인 플래시 블록은 시스템에 플래시가 존재하고 이것이 모델과 호환가능한 경우에만 포함될 것이다.
■ 라우팅 선택에 기초하는 타입. Attention 신호 또는 ACK 신호가 라우팅될 수 없으면, 이 신호는 오프된 상태로 놓아두어야 한다. 이들 종류는 호환성에 대해서 강하게 장려된다. 그러나, 몇몇 종류는 타당하지 않을 수 있다. 예컨대, 로컬 디버그 세그먼트는 소정의 설계에 대해서만 적절하다.
■ 보안성 및 JTAG 검사 스캔 체인과 같은 시스템 확장/관심사에 기인하는 타입. 이들 확장은 DBT가 더욱 폭넓은 목적을 제공할 수 있게 한다.
IDCODE JTAG 스캔
IDCODE는 ARM 제조업체 ID 코드, DBT에 대한 특수 부품 번호, 및 개정판 정보를 포함한다.
부품 번호는 "xx" 부분이 기본 구성 정보인 DBT(가능하게는 3xx)의 고유 머리글자(prefix)로 분할된다. 구성 정보는 DBT의 전체 성능(로컬 대 글로벌 메모리 액세스, 플래시 지원, 검사 스캔 체인 지원, 보안성 등)에 대한 신속한 분석을 가능하게 한다.
메모리 액세싱 명령 인터페이스
DR은 34 비트이다. 비트들은 최종 2 비트는 TDI를 통한 입력(in)의 경우의 타입(호스트에서 타겟으로)이고 TDO를 통한 출력(out)의 경우의 스테이터스가 되도록 팩킹된다. 따라서, TDI ≥ 32 비트 데이터 ≥ 2 비트 제어/스테이터스 ≥ TDO이다.
전송(send) 포맷은 [Type as 1:0] [Value as 31:0]이다.
응답(reply) 포맷은 [Status as 1:0] [Return data as 31:0]이다.
응답은 1회의 트랜잭션에 의해서 스큐(skew)된다는 것을 주목하여야 한다(따라서, UpdateDR을 통해서 전송된 타입/값으로부터의 응답은 다음 CaptuerDR에서 응답할 것이다). 또한, 시프트 없이 CaptureDR ≥ UpdateDR을 실행하는 것은 라이트 모드(write mode)에서의 특수한 경우라는 것을 주목하여야 한다. 이것은 채우기(fill)(자동 증가의 경우) 또는 리라이트(re-write)(자동 증가의 경우)를 가능하게 한다.
타입은 다음 중 하나이다.
0 1 2 3 제어. 값은 변경될 수도 있고 변경되지 않을 수도 있는 제어 비트이다(커미트 플래그 참조). 어드레스. 값은 어드레스이다. 데이터 라이트. 값은 기록할 데이터이다. 라이팅이 32 비트보다 작으면, 데이터는 리틀 엔디안이다(LSB는 데이터를 포함한다). 데이터 리드. 값은 메모리 판독 시에 무시된다.
스테이터스는 다음의 2 개의 비트로 구성된다.
□ Bit0(LSB)은 nCOMPLETE이다.
■ Bit1(MSB)은 ERROR이다.
스테이터스 조합은 (Bit1, Bit0)으로 읽는다.
0,0 0,1 1,0 1,1 트랜잭션 완결 OK (따라서, 리턴 데이터는 요청 데이터이다). 트랜잭션이 완결되지 않음. 이것은 어드레스 또는 제어에 대해서는 불가능한 것이다. 에러를 발생한 채 완결된 트랜잭션. 리턴 데이터는 에러 정보를 포함한다. 예약
컨트롤 요청(Control Request)
[00b] [Control word]
컨트롤 워드는 LSB에서부터 MSB까지의 비트로 구성된다.
▶ Bit 0: 리드 또는 라이트 데이터에 대한 자동 증가 어드레스. 현재 트랜잭션이 완결된 경우에만 증가한다. 이것은 에러 때문에 실패하거나 새로운 요청이 너무 일찍(완결 이전에) 오는 경우에는 증가는 없다는 것을 의미한다. 주목할 것은 하부 12 비트에만 증가한다는 것이다. 따라서, 2^12 페이지 내에서는 증가한다.
▶ Bit 1-3: 다음과 같은 동작의 크기:
0 = 8 비트
1 = 16 비트
2 = 32 비트
3 = 64 비트(데이터 버스가 수용하는 경우에만 한정)
N = 4-7 예약.
▶ Bit 4-7: 다음과 같은 플래시 제어:
0 = 플래시 없음 - 정상 AHB 동작.
1 = 플래시 라이트 인에이블. 이것은 모든 라이트가 요구되는 바와 같은 값 이전/이후에 플래시 제어 동작을 내보내는 것을 의미한다. 이 비트는 플래시 지원이 가용하지 않은 경우에는 세트 상태로 유지되지 않을 것이다.
2 = 플래시 없음, 강제 검증하기(Pushed Verify). 이것은 모든 후속 라이트(write)는 실제 기록을 수행하지 않지만, 버스 상의 현재 위치를 읽어내어 그 결과를 통과된 값과 비교하는 것을 의미한다. 이 비교가 일치하면, '라이트(write)'는 성공으로서 처리된다. 상기 비교가 일치하지 않으면, 스테이터스는 에 러를 나타낸다.
3 = 리드백(read-back)이 허용된 플래시 라이트(Flash write). 이것은 라이트 이후(즉, 기록된 이후)에 적절히 세트를 확인하기 위해서 데이터가 다시 읽혀진다(즉, 리드백된다). 이것은 플래시 라이트가 동작 완결되었음을 확인하는 규칙이라는 것을 주목하여야 한다.
4 = 4-15 예약.
▶ Bit 8-11: 동작 무시(오버라이드)를 위한 예약. 이것은 나중에 "대체" 메모리 및 버스에의 액세스를 허용한다. 0은 정상 버스 동작을 위한 것이다.
▶ Bit 12: Attention 신호. 이 비트가 유효하면 인터럽트를 발생하여 ARM 코어에 전송된다. 이것은 메일박스 타입의 시그널링을 가능하게 한다(이와 함께 ACK도 참조). 이것은 자기 정제(self-clearing) 신호이다. 따라서, Assert를 기록하면 ARM에 신호를 보낸 후 정제(클리어)된다. Attention/ACK 확장 모드는 (시스템이 다중 Attention 신호를 제공하는 경우에) 구동된 어떤 신호를 변경하는데 사용될 수 있다.
▶ Bit 13: ACK 리턴 신호. 이 비트가 유효하면 ARM 코어가 메일박스 동작(전송된 패킷)을 응답 또는 승인한 사실을 보낼 수 있게 한다. 이것은 자기 정제 래치이다. 따라서, 이것은 1회만 발생상태(asserted)를 나타내는 것으로 된 후에 다음 Assert까지 비발생상태(deasserted)를 나타내는 것으로 된다. Attention/ACK 확장 모드는 는 (시스템이 다중 ACK 신호를 제공하는 경우에) 샘플링된 어떤 신호를 변경하는데 사용될 수 있다.
▶ Bit 30: 스티키 스테이터스(Sticky-Status). 에러 또는 미결이 발생하면, 다시 Control이 읽혀질 때까지 후속 요청은 무시된다. 즉, 데이터 판독/기록 요청이 수행되고 이것이 실패하거나 또는 버스에서 아직 대기 중인 동안에 다른 요청이 수행되면, 이 요청과 향후의 모든 요청은 제어(control) 요청이 들어올 때까지 무시된다. 이것은 호스트가 무엇이 발생하였는지를 알릴 수 있도록 보장한다. 이 비트가 세트 되어 있는 경우, 무시된 모든 명령에 대해서 리턴된 스테이터스는 실패를 나타내게 된다. 세트 되어 있는 경우, 시스템은 클리어를 수용(커밋)하지 않는다.
▶ Bit 31: 커밋 컨트롤 변경. 이 플래그는 컨트롤 워드가 컨트롤 세트에 기록되도록 세트 되어 있어야 한다. 세트 되어 있지 않으면, 컨트롤 워드는 무시된다(이것은 읽는 것만을 허용(스티키 스테이터스를 정제(클리어)하는 것을 포함)하고, 단순 NOP에 대해서 만들어진다).
응답(다음 스캔의 결과)은 현재 래치되어 있는 컨트롤 세트가 된다. 이것은 (수용(커밋)하든 수용하지 않든) 스티키 스테이터스를 검사하는데 사용될 수 있고, 동작이 허용되었는지를 판정하는데 사용될 수 있다. 예컨대, 크기가 64로 설정(크기는 3)되었지만 다시 32(2)로서 읽히는 경우에는, 64 비트 동작(연산)은 이 TAP에 의해서 지원되지 않는다. 플래시 동작과 동작 무시의 경우에도 마찬가지이다.
어드레스(Address)
[01b] [Address]
동작 무시가 정상 버스 동작에 대해서 행해질 때 어드레스가 버스 어드레스( 물리적인 것)인 경우(상세한 내용은 '컨트롤(Control)'을 참조).
어드레스(Address)의 기록은 향후의 판독 및 기록 동작을 위해서 보존된다. 자동 증가 모드는 이 어드레스가 후속하는 모든 성공 데이터 판독/기록 동작에 대해서 (데이터 크기씩) 증가한다는 것을 의미한다.
응답(다음 스캔의 결과)은 이 요청에 기록된 어드레스와 동일하다.
DataWrite
[10b] [Value to Write]
이 연산(동작)은 현재 어드레스에 들어온 값으로부터 64 비트 값의 8, 16, 32 또는 전반/후반을 상기 보존된 어드레스 세트에 기록한다('어드레스 요청(Address request)'을 참조). 다음에, 성공인 경우, 어드레스는 1, 2, 4 또는 8씩(증가할 수 있는 비트 수 범위 내) 증가한다.
응답(다음 스캔의 결과)은 기록이 에러 때문에 실패하였는지 성공하였는지를 나타낸다.
DataRead
[11b] [Ignored Value]
동작 무시가 정상 버스 동작에 대해서 행해질 때 아웃바운드 값이 무시되는 경우(이것은 스캔 동작이 어드레스에 의해서 지정된 스캔 체인에 대한 레지스터를 지명하는데 사용된다).
이 연산(동작)은 상기 보존된 어드레스 세트의 현재 어드레스로부터 64 비트 값의 8, 16, 32 또는 전반/후반을 판독한다('어드레스 요청(Address request)'을 참조). 다음에, 성공인 경우, 어드레스는 1, 2, 4 또는 8씩(증가할 수 있는 비트 수 범위 내) 증가한다.
응답(다음 스캔의 결과)은 스테이터스가 OK인 경우에는 판독된 값이고, 에러인 경우에는 에러 정보가 된다. (주: 에러 비트가 세트 되어 있는 경우, ReadDATA 버스를 통해서 에러 코드를 리턴하는 것은 AMBA 컨트롤러가 하는 일이다.)
예제
예제는 이 인터페이스가 어떻게 사용되어야 하는 것인지를 예시하기 위해서 나타낸 것이다. 이것은 대부분의 에뮬레이터에서는 스캔을 버퍼에 축적해 넣은 후 이들 전부를 일시에 실행하는 것이 더욱 실제적이라는 것을 주목하여야 한다. 이것은 다수의 단일 동작 및 다운로드로 확장한다. 전부 성공하였는지 여부를 판정하기 위해서 끝 부분에서 리턴 데이터가 검사될 수 있다.
단일 값 기록하기(Writing a single value)
다음은 단일 값이 어떻게 기록되는 지를 보여준다. 컨트롤 및 어드레스(Control and Address)가 이미 올바른 값으로 되어 있다면 이들에의 기록은 필요 없다는 것을 주목하여야 한다.
ScanOut(Control, SIZE(2)|COMMIT) -- 크기를 32 비트로 설정
ScanOut(Address, addr) -- 어드레스를 '기록'으로 설정
ScanOut(DataWrite, value) -- 값을 '기록'으로 설정
ScanIO(Control, 0, &results) -- 결과가 확실하게 작용하도록 한다
IF(!results[status])
Succeeded
Else
Failed
단일 값 판독하기(Reading a single value)
다음은 단일 값이 어떻게 판독되는 지를 보여준다. 컨트롤 및 어드레스(Control and Address)가 이미 올바른 값으로 되어 있다면 이들로부터의 판독은 필요 없다는 것을 주목하여야 한다.
ScanOut(Control, SIZE(2)|COMMIT) -- 크기를 32 비트로 설정
ScanOut(Address, addr) -- 어드레스를 '판독'으로 설정
ScanOut(DataRead, 0) -- 값을 '판독'으로 설정
ScanIO(Control, 0, &results) -- 결과를 획득
IF(!results[status])
Data_read=results[value]
Else
Failed
다수의 값 기록하기( 다운로딩 )(Writing multiple values(downloading))
다음은 다수의 값이 어떻게 기록되는 지를 보여준다. 컨트롤 및 어드레스(Control and Address)가 이미 올바른 값으로 되어 있다면 이들에의 기록은 필요 없다는 것을 주목하여야 한다. 또한, 이 알고리즘은 4K 한정범위(바이트 어드레스 한정범위)에 걸쳐서 랩을 씌운 사례를 처리한다는 것을 주목하여야 한다. 즉, 자동 증가 특징은 하부 12 비트에서 기동할 뿐이라는 것을 주목하여야 한다. 따라서, 어드레스가 4K 배열 지점을 통과하면, 이것은 반드시 재기록되어야 한다. 입력되는 어드레스가 4K 경계선상에 배열된 것인지는 알 수 없으므로, 단순히 다음 경계로 변할 때 기록을 한다. 또한, 스티키 비트(sticky bit)를 이용하여 각 블록의 끝 부분에서 총체적 에러를 검사한다는 것을 주목하여야 한다. 만일 에러가 검출되면, 저속 스캔을 이용하여 루프가 다시 시도될 수 있다(예컨대, RunTestIdle의 회전수가 더욱 많음).
ScanOut(Control, AUTO_INC|SIZE(2)|COMMIT) -- 크기=32씩 증가
ScanOut(Address, addr) -- 개시 어드레스를 '기록'으로 설정
for(index=0; index<length; index++)
{
ScanOut(DataWrite, value[index]) -- 다음 값을 '기록'으로 설정한다
addr+=4;
if(!(addr&0xFFF)) -- 주: addr inc는 오로지 12 비트임
{ -- 다음 페이지에 랩 씌우기
ScanOut(Control, 0) -- 결과가 확실하게 작용하도록 한다
ScanIO(Address, addr, &results) -- 다음 배열 어드레스를 설정
if(results[data]&STICKY_STATUS) -- 컨트롤 요청으로부터의 결과
Failed -- 총체적 실패
}
}
플래시에 다수의 값 기록하기(Writing multiple values to flash)
'플래시에 기록하기'는 기본적으로 다음의 사항을 제외하고 정상 메모리 동작과 동일하다.
Bit 4(플래시 프로그래밍)가 세트 되면, 플래시 프로그래밍 명령은 데이터와 함께 버스 인터페이스에 발행된다. 플래시를 프로그래밍하는 것은 SRAM보다 시간이 매우 많이 걸리기 때문에, 일단 플래시 프로그래밍 명령이 RTI 지연(UpdateDR과 CaptureDR 사이)에 의해서 받아들여지면, 시간 절약을 위해서, 프로그램된 다음 워드가 대기행렬처리(큐잉)된 다음에, PauseDR에서 지연이 조정된다. 즉, 제1 기록에 이어서 제2 기록이 오고, 다음에 PauseDR에서 충분히 회전되어 플래시 기록(및 선택 사항인 리드백) 완결을 보장한다. 다음에, 상태는 UpdateDR을 통해서 정상적으로 진행되어, 그 기록을 시작한다. 이 경우에도, 더욱 많은 것이 대기행렬처리될 수 있다. 이들의 블록 이후에, 호출자는 스티키 스테이터스를 검사하여 동작이 성공적으로 완결되었는지를 확인하여야 한다.
그 밖의 결과(Miscellaneous Results)
적분기/AP (RVI-ME 포함)(4-8 MHz TCK)
다운로드 500 kB/초 (RAM)
플래시 메모리 180 kB/초 (2 칩에 각각 x16하여 32 비트를 생성)
메모리 채우기 3700 kB/초
설계 방법(Design Approach)
DBT는 앞서, 예컨대 '문제와 해결 방안(Problem and Solution)'에서 개략적으로 설명한 바와 같은 모델을 중심으로 구축되었다. 더욱 상세한 설명을 하기 위해서, 이 섹션에서는 상이한 부품들이 왜 현재의 상태대로 구성되었는지를 설명한다.
전반적 설계(Overall Design)
DBT의 전반적 설계는 칩의 메모리/주변 시스템에 대한 액세스를 매우 고속으로 용이하게 수행하는 메커니즘을 제공하는 데 있다. 이것은 크기 또는 IR 및 DR 스캔 체인 및 이용 방식 전부는 디버거 및 검사 도구가 수행하는 대표적 용도, 즉 다운로드, 채우기, 위치 샘플링, 실행 시스템의 핫 패치(hot patch), 모니터 또는 에이전트와의 통신, 플래시 프로그래밍, 메모리 검증 등의 성능을 최적화하도록 설계되었다.
DBT는 디버그용의 다른 종류의 용도를 직접 커버 하도록 설계되지는 않았다. 즉, 이것은 단순한 AHB/AHB-Lite 메모리 액세스 컴포넌트이다. 다른 종류의 디버그는 버스 모델을 이용하여 자신이 노출되면 DBT를 이용하여 시스템 버스를 통해서 또는 사설 디버그 버스(세그먼트)를 통해서 용이하게 될 수 있다. 이 용도에 맞추어진 모델은 DBT가 광범위한 장치에 사용될 수 있도록 하는 것을 의도한 것이다. 또한, 이것은 다른 메모리 액세스가능한 컴포넌트가 추가됨에 따라서, DBT를 이용하여 또는 DBT를 이용할 수 없을 때에는 종래의 JTAG를 통해서 액세스 될 수 있다는 것을 의미한다. 이것은 가장 명료한 상호 동작성을 보장하는데 도움을 준다. 버 스 모델(시스템 버스 또는 로컬 버스)을 이용하여 '결합'되는 장치의 예에는 ETM(트레이스), ETB(트레이스 버퍼), 디버그 모니터, SOC의 ASIC(정보 모음), CTI/CTM(크로스 트리거링), 및 FPB(플래시 패치 및 브레이크포인트) 등이 있다.
DBT 설계는 JTAG 에뮬레이터가 데이터 획득 시보다 데이터 전송 시에 더욱 양호한 경향이 있다는 사상에 기초를 둔다(SWJ(단일 선로 JTAG는 에뮬레이터가 사용 중인지에 상관없이 이것의 극단적인 예라는 것을 주목하여야 한다). 이것은 통신 모델이기 때문이기도 하고 결과를 후처리하는데 필요한 지능 때문이기도 하다. 매우 강력한 에뮬레이터(예컨대, ARM RVI)는 양방향 수단과 로컬 분석의 사용을 선택할 수 없지만, 이러한 에뮬레이터조차도 최상 동작의 수행에 필요한 TCK의 수를 감소시키기 때문에 밀결합 판정으로부터 이익을 얻게 된다는 것은 말할 필요도 없다.
버스 인터페이스(Bus Interface)
버스 인터페이스 모델은 상이한 시스템 설계들을 수용하는 모듈식으로 설계되었다. AHB-Lite가 바라는 것일 때 마이크로컨트롤러가 완전 AHB 다중 매스터 모델을 이용하는 것을 예상하는 것은 비합리적이다. 마찬가지로, 단일 세그먼트를 가정하고, 시스템 설계자가 매스터링 브리지를 구축하는 것을 예상하는 것은 비합리적이다.
로컬 대 글로벌 모델(일시에 2 종류의 버스 조정을 가능하게 하는 것)은 확연히 다른 액세스 모델들을 보유할 필요가 있는 시스템 설계를 수용하도록 설계되었다. 이것의 주요한 수요처는 디버그 모니터 로컬 메모리 대 시스템 메모리이다. 디버그 모니터 메모리를 (디버그 메모리 맵 레지스터도 역시 포함할 수 있는) 특수 세그먼트로서 규정함으로써, 로컬 액세스 발생 시에 버스 매스터링 및/또는 중재는 필요하지 않다. 이것은 전체 시스템이 디버그 동작 동안 침해를 덜 받고 실행하는 것을 가능하게 한다. 또한, 로컬 버스 모델은 버스 상의 다른 컴포넌트가 데이터를 손상 또는 오염시키지 않도록 보장한다. 마지막으로, 로컬 세그먼트는 스누핑(snooping)이라고 하는 선택 사항 없이 안전한 정보 제어를 가능하게 한다.
플래시(Flash)
플래시 모델은 대부분의 플래시 부품이 일련의 라이트(a set of writes)를 이용하여 상기 값 이전에 그리고 선택 사양에 따라서는 몇몇 라이트 이후에 프로그램될 수 있다는 관념에 기초를 두었다. 최상의 속도를 얻기 위해서, 많은 플래시 장치는 스테이터스 검사를 통해서 실행 시기를 판정하는 것을 허용한다. DBT 모델은 이것을 정상적으로 실행하지 못한다. 그 대신에, DBT 모델은 JTAG 인터페이스에 정상적인 플래시 라이트를 수용하기에 충분한 시간을 설정하게 함으로써 동작을 수행한다. 이 방법은 앞으로 사용할 애플리케이션에는 적절하지 않지만, 호스트 모델에 대해서 최상의 속도(및 게이트 비용)를 갖는 안전한 방법을 제공한다. 최악의 시나리오는 단순히 플래시가 과도실행하는 경우 다시 기록되어야 한다는 것이다.
플래시가 즉시 검증되어야 하는 경우, 검증 방법과 함께 선택 사양인 라이트 플래시(Write Flash)가 사용될 수 있다. 이것은, 아직 다중 워드 라이트를 하나의 블록 전달체로 배치처리하는 동안 JTAG 에뮬레이터가 하나의 바이트 또는 워드를 기록한 직후에 실패를 검사하는 것을 가능하게 한다.
강제 검증(Pushed Verification)
강제 검증 모델은 직관적이지 않은 '강제(push)' 모델에 기초를 둔다. 이것은 하나의 라이트가 전송 도중 소멸(sent down) 되면 하나의 기록으로서 수행되지 않은 것을 의미한다. 그 대신에, (버스로부터) 그 위치가 읽혀져 강제 값(pushed value)과 비교된다. 다음에, 그 결과는 2 비트(에러/스테이터스)로 되돌아와, 총제적 에러 모델과 함께 마찬가지로 작용한다. 이것은 발송 모델(sending model)에 유리하기 때문에 실행되었다. 대안은 판독 시에 전송되고, 그 결과를 다시 전송하여 호스트에서 비교된다. 블록 라이트(block write) 후에 강제 비교를 실행하고 그 후에 더욱 많은 동작을 실행함으로써, 호스트는 최상의 전체 성능을 얻도록 가장 많은 수의 동작을 쌓아 놓을 수 있다. 검증이 실패하면, 남아 있는 동작은 무시되고, 이것은 (에러 처리에) 적절하다. 이로써, 호스트와 타겟 간의 왕복이 방지된다.
강제 검증 모델은 플래시 검증, SRAM 다운로드 검증, 일반 라이트 검증에 대해서, 그리고 값 변경 샘플링에 대해서 사용될 수 있다. 후자는 호스트가 위치(또는 위치 세트)의 변경을 예의주시한 후에 변경된 시기에 대한 대략의 타임스탬프를 획득하는 것을 의미한다. 예상 값이 강제 입력(push down)된 후, 동작은 계속 순환된다. 매우 빈번하게 스테이터스 비트(2)를 조사함으로써, 호스트는 값이 변경된 시기를 판정할 수 있다(강제 입력된 값과 다른 경우에는 강제 검증 모델에 의해서 에러가 리턴된다).
Attention 및 ACK
Attention 및 ACK 모델은 메일박스 모델을 사용하는 사람에게는 명료(클리 어)하다. Attention 및 ACK 모델은 타겟에 의한 폴링(polling)을 방지하고, DBT 장치(침입 장치)에 의한 버스 폴링을 방지한다. Attention 및 ACK 확장 모델은 DBT 컴포넌트가, 다수의 Attention 신호 및/또는 ACK 신호(예컨대, 상이한 코어에 대한 신호)를 갖도록 선택하지만 그 간단한 경우를 감속시키지는 못하게 할 수 있다. 즉, Attention 및 ACK 확장 모델은 개개의 컨트롤 요청을 이용하여 구동할 Attention 신호(1개 이상)와 샘플링할 ACK 신호(1개 이상)를 선택할 수 있게 하므로, Control을 이용하는 현재 조정을 구동시키는 정상 모델이 사용될 수 있다. 이것은 Attention 및 ACK가, 선택된 세트의 변경 시에 스캔 추가만이 요구되는 고속 인라인 모드에 사용될 수 있다는 것을 의미한다.
도 6은 ScanTAP과 MemTAP 간(메모리 액세스에 더욱 밀접한 방식으로 스캐닝을 지원하는 방법) 및 이들 2개가 어떻게 DBT에 맞추어지는 지의 관계 및 구현례/구조 모델을 보여준다. ScanTAP에 대해서 제안된 모델은 다음 4개의 작업을 달성하도록 설계된다.
● 시간 영역 경계에서의 명료한 분리. 이것은 최소 가능한 등록 레지스터를 제공하고, 특히 스캐닝 시의 전송 부담을 처리하도록 시간 영역들 간의 핸드쉐이크를 관리한다.
● 다중 스캔 체인 핸들러를 허용하는 간단한 MUX 모델.
● 스캔 체인 핸들러를 위한 손쉬운 구현. 스캔 체인 핸들러는 ScanTAP 인터페이스 자체의 사용을 원하지 않는 경우 이 ScanTAP 인터페이스를 지원하도록 간단한 Verilog를 이용하여 랩으로 둘러싸일 수 있다(브리지 지원 및 시간처리(클록킹 )).
● 큰 스캔 체인을 이용하여 삽입/추출 용도에 최적화
ScanTAP 구성은 4개의 개별 블록을 생성한다. 시스템 설계자는 이들 중 하나만을 구현하여야 한다(그리고 경우에 따라서는 이미 이것을 보유하고 있다). 도 7에 이들 블록이 도시되어 있다.
1. 프로토콜 블록. 이 블록은 MemTAP 서브컴포넌트와 동일한 기본 프로토콜을 사용한다. 이 블록은 (스트레이트 JTAG에 대한) TAP 블록 또는 SWJ에 대한 온칩 런컨트롤(On-Chip Run-Control) 블록을 통해서 액세스될 수 있다. 이 블록은 4개의 32 비트 레지스터에 액세스를 제공하는 간단한 34 비트 레지스터 모델을 관리한다. 4개의 레지스터는 MemTAP의 4개의 레지스터와 일치하지만, 약간 다른 다음의 용도에 사용된다.
● Control: (스캔 체인용) 셀렉터, 요청, 및 데이터 카운터. 스테이터스 리턴(동작이 완결된 경우). 요청은 전치 한정(pre only), 후치 한정(post only), 삽입 데이터 한정(insert data only), 추가 데이터 한정(extra data only), 전치 → 삽입 데이터 → 후치의 순, 및 전치 → 추가 데이터 → 후치의 순을 나타낸다.
● Address: 전치 카운터와 후치 카운터(각각 16 비트). 컨트롤에 의해서 인에이블된 경우, 이들 카운터는 스캔 셀을 건너뛰어 삽입 및 추출의 경우에 원하는 스캔 셀에 도달한다.
● Extra: 미사용. 현재 스캔 체인 크기를 리드백하는데 사용될 수 있 다.
● Data: 삽입 데이터 값과 추출 데이터 값. 이들 값은 스캔 체인의 현재 위치에 데이터를 고정/도달시키는데 사용된다. 이것은 사용 당 1-32 비트의 동작(연산)을 지원한다. 이 레지스터의 반복되는 액세스는 컨트롤 시에 크기가 주어질 때마다 현재의 요청받은 동작을 수행할 것이다. 따라서, 32 비트의 4 회의 동작(연산) 각각은 128 비트 스캔을 처리하는데 사용될 수 있다. 오버헤드는 2 비트뿐이므로, 이것은 이 메커니즘을 사용하는 비용이 저렴하다는 것을 의미한다.
2. ShiftIF 블록. 이 블록은 시간 영역 경계의 다른 쪽에 있다. 이 블록은 스캔 셀이 프로토콜 블록이 동작하도록 한 요청보다 매우 높은 클록 레이트로 동작할 수 있게 한다. 이 블록은 modes, counts+data(20 비트 레지스터) 및 MUX selections를 관리한다. 동일한 3개의 레지스터가 모든 모드에 사용된다. ShiftIF mode는 데이터 레지스터에 기입할 행위, 즉 셀렉터 설정, 카운트 후 드레인 설정(전치 또는 후치에 선행), 삽입을 위한 데이터+카운트 후 드레인 설정, 추출을 위한 카운트 후 드레인 설정을 나타낸다. ShiftIF에 대한 인터페이스는 핸드쉐이크를 사용하여 완결의 확인을 알린다. 삽입은 data+count(20 비트) 기록, 그 후 mode 기록으로 표현되고, 그 후 핸드쉐이크를 기다린다. 추출은 count(상위 4 비트) 기록, 그 후 mode 기록으로 표현되고, 그 후 핸드쉐이크를 기다린 후, data(16 비트)를 읽어낸다.
3. 셀렉터 MUX. ShiftIF 블록은 MUX에게 현재 선택된 스캔을 전환할 것을 요청한다. 이것은 selector 레지스터가 기록된 후 mode가 설정 셀렉터(set-selector) 에 설정되어 있는 경우에 실행된다. MUX는 핸드쉐이크와 ACK/Error 신호를 사용하여 수용되었는 지를 나타낸다. 에러 응답은 ShiftIF 블록의 selector 레지스터를 클리어(소거)시키므로, 프로토콜 블록은 (리드백을 통해서) 수용되었는 지를 검출할 수 있다. 이것은 에뮬레이션 SW가, 그 특정 장치에 스캔 체인이 존재하는지 여부를 판정하게 할 수 있다.
4. 직렬 시프터. SoC/ASIC 공급자는 직렬 시프터를 제공한다. 직렬 시프터는 5 신호 인터페이스를 사용하거나, 제공된 랩퍼를 사용할 수 있다. 5 신호 인터페이스는 3개의 입력, 즉 "클록"(선행), "브리지" 요청, 및 SI(시프트 인)로 구성되어 있다. 또한, 5 신호 인터페이스는 2개의 출력, 즉 핸드쉐이크(ACK)와 SO(시프트 아웃)를 포함한다. 클록은 (어떠한 형태의) 선행 요청 시마다 발송하고, 그 후, 직렬 시프터는 시프트가 완결되었을 때(신호가 전체 스캔 체인을 통과하였을 때) 핸드쉐이크 신호를 생성한다. 브리지 신호는 SO 신호가 SI 입력에 보내져야 하는 클록 이전에 발생하여 유지된다. 이것은 스캔이 진행하면서 동일한 내용을 유지하는 것을 가능하게 한다(모든 비트가 시프트 어라운드된 경우).
4. ShiftIF 블록은 브리지 신호를 유지하고 (프로토콜 블록에 의해서 로드된) count 횟수를 발송함으로써 전치 건너뛰기 또는 후치 건너뛰기를 수행한다. 핸드쉐이크는 가능한 레이트를 판정한다. ShiftIF 블록은 실행완료할 때까지 자신의 핸드쉐이크를 프로토콜 블록에 다시 발생하지 않으므로, 오버런(overrun)이 발생할 가능성은 없다. ShiftIF 블록은 브리지 신호를 유지하고 클록 count 횟수를 발송함으로써 데이터 '추출' 동작을 수행한다. 각각의 SO는 data 레지스터로 시프트된다. 그 후, 프로토콜 블록은 핸드쉐이크가 발생한 경우에 data를 읽는다. ShiftIF 블록은 브리지 신호를 유지하지 않고 클록 count 횟수를 발송함으로써 데이터 '삽입' 동작을 수행한다. 각각의 SI는 data 레지스터의 하위 비트를 이용하여 발생한 후, data 레지스터는 시프트된다. 프로토콜 블록은 프리로드(preload) data(및 count)를 갖는다.

Claims (26)

  1. 데이터 처리 동작을 수행하도록 동작할 수 있는 복수 개의 기능 회로와;
    상기 복수 개의 기능 회로 간에 통신을 제공하도록 동작할 수 있는 적어도 하나의 기능 버스와;
    상기 복수 개의 기능 회로의 실시간 동작 동안에 버스 트랜잭션 요청을 상기 적어도 하나의 기능 버스를 통해서 상기 복수 개의 기능 회로 중 하나 이상의 기능 회로에 발행함으로써 상기 복수 개의 기능 회로 중 적어도 하나의 기능 회로에서 진단 동작을 수행하도록 동작할 수 있는 진단 버스 마스터 회로를 포함하는 집적 회로.
  2. 제1항에 있어서, 상기 진단 버스 마스터 회로는,
    디버깅 동작;
    제조 검사 동작;
    제조 프로그래밍 동작;
    제조 구성 동작;
    현장 프로그래밍 동작; 및
    현장 구성 동작
    중 하나 이상의 동작을 수행하도록 동작할 수 있는 것인 집적 회로.
  3. 제1항 또는 제2항에 있어서,
    상기 진단 버스 마스터 회로는 상기 진단 버스 마스터 회로에 진단 동작의 수행과 상기 기능 버스에의 액세스 중 적어도 하나를 권한 부여하는 인증 동작을 수행하도록 동작할 수 있는 것인 집적 회로.
  4. 제3항에 있어서,
    상기 적어도 하나의 기능 버스에 연결된 인증 회로를 더 포함하고, 상기 인증 동작은 상기 진단 버스 마스터 회로가 인증 요청을 상기 인증 회로에 발생하는 것을 포함하며, 상기 인증 회로는 상기 인증 요청이 소정의 기준에 부합함에 따라서 상기 진단 버스 마스터 회로에 선택적으로 권한 부여하도록 동작할 수 있는 것인 집적 회로.
  5. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로를 상기 복수 개의 기능 회로 중 적어도 하나의 기능 회로에 연결하는 전용 진단 버스를 더 포함하고, 상기 전용 진단 버스는 상기 적어도 하나의 기능 버스를 통해서는 액세스할 수 없는 데이터에 액세스하는 것인 집적 회로.
  6. 선행하는 청구항 중 어느 한 항에 있어서,
    상이한 버스 프로토콜을 갖는 복수 개의 기능 버스를 더 포함하고, 상기 진단 버스 마스터 회로는 각각이 상기 개개의 기능 버스에 대한 버스 프로토콜을 사용하여 개개의 기능 버스와 통신하는 복수 개의 버스 인터페이스 회로를 포함하는 것인 집적 회로.
  7. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는 개개의 외부 신호 프로토콜을 사용하여 개개의 외부 진단 장치와 통신하는 복수 개의 버스 인터페이스 회로를 포함하는 것인 집적 회로.
  8. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는 상기 집적 회로의 클록 도메인과 상기 진단 버스 마스터 회로에 결합한 외부 진단 장치의 클록 도메인 간에 신호를 전달하도록 동작할 수 있는 것인 집적 회로.
  9. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는,
    상기 적어도 하나의 기능 버스에 결합한 장치로부터 데이터 값을 로드하는 것;
    상기 적어도 하나의 기능 버스에 결합한 장치에 데이터 값을 저장하는 것;
    상기 적어도 하나의 기능 버스에 결합한 장치들 간에 데이터 값을 복사하는 것; 및
    상기 적어도 하나의 기능 버스에 결합한 장치에 저장된 데이터 값을 확인하는 것
    중 하나 이상을 수행하도록 동작할 수 있는 것인 집적 회로.
  10. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스에는 플래시 메모리가 결합하고, 상기 진단 버스 마스터 회로는 플래시 메모리 프로그래밍 프로토콜을 사용하여 상기 플래시 메모리를 프로그램하도록 동작할 수 있는 것인 집적 회로.
  11. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 집적 회로는 시스템 온 칩(system-on-chip)형의 집적 회로인 것인 집적 회로.
  12. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스는 상기 집적 회로의 외부 버스인 것인 집적 회로.
  13. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스는 AMBA 버스인 것인 집적 회로.
  14. 데이터 처리 동작을 수행하도록 동작할 수 있는 복수 개의 기능 회로와; 상기 복수 개의 기능 회로 간에 통신을 제공하도록 동작할 수 있는 적어도 하나의 기능 버스를 구비하는 집적 회로에서 실시간 진단 동작을 수행하는 방법으로서,
    상기 복수 개의 기능 회로의 실시간 동작 동안에 진단 버스 마스터 회로로부터의 버스 트랜잭션 요청을 상기 적어도 하나의 기능 버스를 통해서 상기 복수 개의 기능 회로 중 하나 이상의 기능 회로에 발행하는 단계를 포함하는 실시간 진단 동작 수행 방법.
  15. 제14항에 있어서,
    상기 진단 버스 마스터 회로는,
    디버깅 동작;
    제조 검사 동작;
    제조 프로그래밍 동작;
    제조 구성 동작;
    현장 프로그래밍 동작; 및
    현장 구성 동작
    중 하나 이상의 동작을 수행하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 진단 버스 마스터 회로는 상기 진단 버스 마스터 회로에 진단 동작의 수행과 상기 기능 버스에의 액세스 중 적어도 하나를 권한 부여하는 인증 동작을 수행하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  17. 제16항에 있어서,
    상기 적어도 하나의 기능 버스에는 인증 회로가 연결되고, 상기 인증 동작은 상기 진단 버스 마스터 회로가 인증 요청을 상기 인증 회로에 발생하는 것을 포함하며, 상기 인증 회로는 상기 인증 요청이 소정의 기준에 부합함에 따라서 상기 진단 버스 마스터 회로에 선택적으로 권한 부여하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    전용 진단 버스는 상기 진단 버스 마스터 회로를 상기 복수 개의 기능 회로 중 적어도 하나의 기능 회로에 연결하고, 상기 전용 진단 버스는 상기 적어도 하나의 기능 버스를 통해서는 액세스할 수 없는 데이터에 액세스하는 것인 실시간 진단 동작 수행 방법.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 집적 회로는 상이한 버스 프로토콜을 갖는 복수 개의 기능 버스를 포함하고, 상기 진단 버스 마스터 회로는 각각이 상기 개개의 기능 버스에 대한 버스 프로토콜을 사용하여 개개의 기능 버스와 통신하는 복수 개의 버스 인터페이스 회로를 포함하는 것인 실시간 진단 동작 수행 방법.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는 개개의 외부 신호 프로토콜을 사용하여 개개의 외부 진단 장치와 통신하는 복수 개의 버스 인터페이스 회로를 포함하는 것인 실시간 진단 동작 수행 방법.
  21. 제14항 내지 제20항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는 상기 집적 회로의 클록 도메인과 상기 진단 버스 마스터 회로에 결합한 외부 진단 장치의 클록 도메인 간에 신호를 전달하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  22. 제14항 내지 제21항 중 어느 한 항에 있어서,
    상기 진단 버스 마스터 회로는,
    상기 적어도 하나의 기능 버스에 결합한 장치로부터 데이터 값을 로드하는 것;
    상기 적어도 하나의 기능 버스에 결합한 장치에 데이터 값을 저장하는 것;
    상기 적어도 하나의 기능 버스에 결합한 장치들 간에 데이터 값을 복사하는 것; 및
    상기 적어도 하나의 기능 버스에 결합한 장치에 저장된 데이터 값을 확인하는 것
    중 하나 이상을 수행하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  23. 제14항 내지 제22항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스에는 플래시 메모리가 결합하고, 상기 진단 버스 마스터 회로는 플래시 메모리 프로그래밍 프로토콜을 사용하여 상기 플래시 메모리를 프로그램하도록 동작할 수 있는 것인 실시간 진단 동작 수행 방법.
  24. 제14항 내지 제23항 중 어느 한 항에 있어서,
    상기 집적 회로는 시스템 온 칩형의 집적 회로인 것인 실시간 진단 동작 수행 방법.
  25. 제14항 내지 제24항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스는 상기 집적 회로의 외부 버스인 것인 실시간 진단 동작 수행 방법.
  26. 제14항 내지 제25항 중 어느 한 항에 있어서,
    상기 적어도 하나의 기능 버스는 AMBA 버스인 것인 실시간 진단 동작 수행 방법.
KR1020057019586A 2003-04-17 2003-09-17 집적 회로용 진단 회로 KR101016711B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/417,335 US7444546B2 (en) 2003-04-17 2003-04-17 On-board diagnostic circuit for an integrated circuit
US10/417,335 2003-04-17

Publications (2)

Publication Number Publication Date
KR20060009255A true KR20060009255A (ko) 2006-01-31
KR101016711B1 KR101016711B1 (ko) 2011-02-25

Family

ID=33158878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019586A KR101016711B1 (ko) 2003-04-17 2003-09-17 집적 회로용 진단 회로

Country Status (11)

Country Link
US (1) US7444546B2 (ko)
EP (1) EP1614039B1 (ko)
JP (1) JP2006514375A (ko)
KR (1) KR101016711B1 (ko)
CN (1) CN100380335C (ko)
AU (1) AU2003269144A1 (ko)
IL (1) IL169848A (ko)
MY (1) MY138620A (ko)
RU (1) RU2005131959A (ko)
TW (1) TWI290630B (ko)
WO (1) WO2004095279A1 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941538B2 (en) * 2002-02-22 2005-09-06 Xilinx, Inc. Method and system for integrating cores in FPGA-based system-on-chip (SoC)
US7200775B1 (en) 2002-10-04 2007-04-03 American Megatrends, Inc. Method and data structures for use in providing on-demand computer diagnostics
US7231549B1 (en) * 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics
US7334166B1 (en) 2002-10-04 2008-02-19 American Megatrends, Inc. Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services
FI5706U1 (fi) * 2002-11-21 2003-02-26 Patria New Technologies Oy JTAG-testilaitteisto ja -testausjärjestelmä
US7496818B1 (en) 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7444571B1 (en) 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7216276B1 (en) 2003-02-27 2007-05-08 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7634817B2 (en) * 2003-07-22 2009-12-15 Gateway, Inc. Diagnostic authentication codes
US7689726B1 (en) * 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US20060179380A1 (en) * 2005-01-14 2006-08-10 Ivo Tousek On-chip electronic hardware debug support units having execution halting capabilities
DE602005005289T2 (de) * 2005-01-31 2009-07-09 Stmicroelectronics S.R.L., Agrate Brianza Verfahren, System und Computerprogrammprodukt zur Korrektur von Fehlern in einem Festwertspeicher
US7437618B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
US7701240B2 (en) * 2005-03-04 2010-04-20 Arm Limited Integrated circuit with error correction mechanisms to offset narrow tolerancing
JP2006252267A (ja) * 2005-03-11 2006-09-21 Oki Electric Ind Co Ltd システム検証用回路
US7370257B2 (en) * 2005-04-08 2008-05-06 Lsi Logic Corporation Test vehicle data analysis
JP2006318172A (ja) * 2005-05-12 2006-11-24 Renesas Technology Corp マイクロコンピュータ
US8881114B2 (en) * 2005-05-16 2014-11-04 Texas Instruments Incorporated Stored program writing stall information when a processor stalls waiting for another processor
US7730545B2 (en) * 2005-05-23 2010-06-01 Arm Limited Test access control for secure integrated circuits
US7515453B2 (en) * 2005-06-24 2009-04-07 Metaram, Inc. Integrated memory core and memory interface circuit
US7363564B2 (en) * 2005-07-15 2008-04-22 Seagate Technology Llc Method and apparatus for securing communications ports in an electronic device
US7802259B2 (en) * 2005-08-08 2010-09-21 Freescale Semiconductor, Inc. System and method for wireless broadband context switching
WO2007018553A1 (en) * 2005-08-08 2007-02-15 Commasic Inc. Multi-mode wireless broadband signal processor system and method
US20070030801A1 (en) * 2005-08-08 2007-02-08 Freescale Semiconductor, Inc. Dynamically controlling rate connections to sample buffers in a mult-mode wireless processing system
US7457726B2 (en) 2005-08-08 2008-11-25 Freescale Semiconductor, Inc. System and method for selectively obtaining processor diagnostic data
US7734674B2 (en) * 2005-08-08 2010-06-08 Freescale Semiconductor, Inc. Fast fourier transform (FFT) architecture in a multi-mode wireless processing system
US20070033349A1 (en) * 2005-08-08 2007-02-08 Freescale Semiconductor, Inc. Multi-mode wireless processor interface
US8140110B2 (en) * 2005-08-08 2012-03-20 Freescale Semiconductor, Inc. Controlling input and output in a multi-mode wireless processing system
US7653675B2 (en) * 2005-08-08 2010-01-26 Freescale Semiconductor, Inc. Convolution operation in a multi-mode wireless processing system
JP4795147B2 (ja) * 2006-07-11 2011-10-19 富士通株式会社 伝送装置
US7823017B2 (en) 2006-08-02 2010-10-26 International Business Machines Corporation Structure for task based debugger (transaction-event-job-trigger)
US7594140B2 (en) * 2006-08-02 2009-09-22 International Business Machines Corporation Task based debugger (transaction-event-job-trigger)
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US7610532B2 (en) * 2006-11-01 2009-10-27 Avago Technologies General Ip (Singapore) Pte. Ltd. Serializer/de-serializer bus controller interface
GB2445166A (en) * 2006-12-27 2008-07-02 Advanced Risc Mach Ltd Integrated circuit with an interface that can selectively communicate a diagnostic signal or a functional signal to external devices.
JP5537158B2 (ja) * 2007-02-12 2014-07-02 メンター グラフィックス コーポレイション 低消費電力スキャンテスト技術および装置
US7882405B2 (en) * 2007-02-16 2011-02-01 Atmel Corporation Embedded architecture with serial interface for testing flash memories
KR100869953B1 (ko) * 2007-05-30 2008-11-24 경북대학교 산학협력단 Etm 인터페이스를 이용한 전력 측정 시스템 및 그 방법
US8176355B2 (en) * 2007-06-07 2012-05-08 International Business Machines Corporation Recovery from hardware access errors
US8014976B2 (en) * 2007-10-24 2011-09-06 Microsoft Corporation Secure digital forensics
US20090113245A1 (en) * 2007-10-30 2009-04-30 Teradyne, Inc. Protocol aware digital channel apparatus
JP4648961B2 (ja) * 2008-03-25 2011-03-09 富士通株式会社 装置メンテナンスシステム、方法および情報処理装置
US20090259457A1 (en) * 2008-04-14 2009-10-15 Mentor Graphics Corporaton Trace Routing Network
US9141776B2 (en) 2008-04-30 2015-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure hardware analysis
US8055936B2 (en) * 2008-12-31 2011-11-08 Pitney Bowes Inc. System and method for data recovery in a disabled integrated circuit
JP5629981B2 (ja) * 2009-05-29 2014-11-26 富士通セミコンダクター株式会社 半導体集積回路及び半導体集積回路の故障診断方法
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
FR2958063B1 (fr) * 2010-03-26 2012-04-20 Thales Sa Dispositif permettant de securiser un bus de type jtag
US8438436B1 (en) * 2010-06-04 2013-05-07 Xilinx, Inc. Secure design-for-test scan chains
CN102184134A (zh) * 2010-06-22 2011-09-14 上海盈方微电子有限公司 一种片上系统的性能分析器
US20130031419A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Collecting Debug Data in a Secure Chip Implementation
GB2493405B (en) * 2011-08-03 2017-04-05 Advanced Risc Mach Ltd Debug barrier transactions
US20130159591A1 (en) * 2011-12-14 2013-06-20 International Business Machines Corporation Verifying data received out-of-order from a bus
CN104246712B (zh) 2012-03-25 2017-11-10 英特尔公司 用于调试任何片上系统状态、功率模式、重置、时钟和复杂数字逻辑的基于异步可编程jtag的接口
US10769051B2 (en) * 2016-04-28 2020-09-08 International Business Machines Corporation Method and system to decrease measured usage license charges for diagnostic data collection
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
US11494329B2 (en) * 2020-02-27 2022-11-08 Advantest Corporation NVMe-MI over SMBus multi-master controller with other SMBus and I2C masters in a single FPGA chip
CN113703552B (zh) * 2021-07-30 2024-02-09 浪潮电子信息产业股份有限公司 一种服务器散热调控方法、设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4183459A (en) * 1978-04-24 1980-01-15 Fluke Trendar Corporation Tester for microprocessor-based systems
JPH01134639A (ja) 1987-11-20 1989-05-26 Nec Corp トレース停止制御方式
JP2960560B2 (ja) * 1991-02-28 1999-10-06 株式会社日立製作所 超小型電子機器
GB2282244B (en) * 1993-09-23 1998-01-14 Advanced Risc Mach Ltd Integrated circuit
US5664124A (en) * 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
DE19616293A1 (de) * 1996-04-24 1997-10-30 Bosch Gmbh Robert Bussystem für die Übertragung von Nachrichten
GB9626412D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Diagnostic procedures in an integrated circuit device
JP3712810B2 (ja) 1997-02-25 2005-11-02 富士通株式会社 通信装置の監視制御方式
US6065078A (en) * 1997-03-07 2000-05-16 National Semiconductor Corporation Multi-processor element provided with hardware for software debugging
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6115763A (en) * 1998-03-05 2000-09-05 International Business Machines Corporation Multi-core chip providing external core access with regular operation function interface and predetermined service operation services interface comprising core interface units and masters interface unit
GB2338791B (en) 1998-06-22 2002-09-18 Advanced Risc Mach Ltd Apparatus and method for testing master logic units within a data processing apparatus
US6779145B1 (en) * 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
JP2001331442A (ja) 2000-03-16 2001-11-30 Nec Eng Ltd システムバス競合制御装置及びそれに用いるシステムバス競合制御方式
JP4409056B2 (ja) 2000-06-30 2010-02-03 富士通株式会社 Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置
GB2368669B (en) 2000-10-31 2005-06-22 Advanced Risc Mach Ltd Integrated circuit configuration
JP2002149498A (ja) 2000-11-08 2002-05-24 Hitachi Building Systems Co Ltd 監視診断装置
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
US6948098B2 (en) * 2001-03-30 2005-09-20 Cirrus Logic, Inc. Circuits and methods for debugging an embedded processor and systems using the same
DE10146516A1 (de) * 2001-09-21 2003-04-24 Infineon Technologies Ag Programmgesteuerte Einheit
US7277972B2 (en) * 2002-03-08 2007-10-02 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
US20040082297A1 (en) * 2002-10-28 2004-04-29 Stambaugh Mark A. Test protocols for wireless test
US7386639B2 (en) * 2003-01-15 2008-06-10 Avago Technologies Fiber Ip (Singapore) Pte. Ltd. Switch for coupling one bus to another bus

Also Published As

Publication number Publication date
CN100380335C (zh) 2008-04-09
AU2003269144A1 (en) 2004-11-19
JP2006514375A (ja) 2006-04-27
TW200422626A (en) 2004-11-01
RU2005131959A (ru) 2006-02-10
US20040210797A1 (en) 2004-10-21
IL169848A (en) 2011-03-31
MY138620A (en) 2009-07-31
WO2004095279A1 (en) 2004-11-04
EP1614039B1 (en) 2018-10-17
US7444546B2 (en) 2008-10-28
EP1614039A1 (en) 2006-01-11
TWI290630B (en) 2007-12-01
KR101016711B1 (ko) 2011-02-25
CN1764902A (zh) 2006-04-26

Similar Documents

Publication Publication Date Title
KR101016711B1 (ko) 집적 회로용 진단 회로
JP4190114B2 (ja) マイクロコンピュータ
JP3862291B2 (ja) マイクロプロセッサ
USRE49305E1 (en) Data processing system having cache memory debugging support and method therefor
EP0528585B1 (en) Data processing system with internal instruction cache
US5317711A (en) Structure and method for monitoring an internal cache
US5996034A (en) Bus bridge verification system including device independent bus monitors
US7506205B2 (en) Debugging system and method for use with software breakpoint
EP0636973A2 (en) Processor interface chip for dual-microprocessor processor system
JPH09218803A (ja) データプロセッサ
US6154801A (en) Verification strategy using external behavior modeling
GB2256733A (en) Inserting debug instructions into a cpu with on-chip instruction cache.
US20020188822A1 (en) Adapter for a microprocessor
US6678838B1 (en) Method to track master contribution information in a write buffer
US5938777A (en) Cycle list based bus cycle resolution checking in a bus bridge verification system
US6446164B1 (en) Test mode accessing of an internal cache memory
KR20070019173A (ko) 버스 모니터링을 위한 집적 회로 장치 및 그 방법
US6173243B1 (en) Memory incoherent verification methodology
JP6041749B2 (ja) トレース収集回路及びトレース収集方法
EP1831789A2 (en) A testable multiprocessor system and a method for testing a processor system
US6694489B1 (en) Test interface for a configurable system on-chip
CN111625411A (zh) 半导体装置及调试系统
US7689864B2 (en) Processor comprising an integrated debugging interface controlled by the processing unit of the processor
JPH11232134A (ja) システム評価装置およびエミュレータ
Haug NUTS Backplane Revision-Improving Reliability and Modularity of the NTNU Test Satellite

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: 20140121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 10