Managing Complex Trace Filtering and Triggering Capabilities of CoreSight. Jens Braunes pls Development Tools

Similar documents
Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

ARM Processors for Embedded Applications

RM3 - Cortex-M4 / Cortex-M4F implementation

The Challenges of System Design. Raising Performance and Reducing Power Consumption

Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan

ETM -R4. CoreSight. Technical Reference Manual. Revision: r2p1. Copyright ARM. All rights reserved. ARM DDI 0367D (ID072915)

An Efficient Multi Mode and Multi Resolution Based AHB Bus Tracer

A Seamless Tool Access Architecture from ESL to End Product

ARM Debug and Trace. Configuration and Usage Models. Document number: ARM DEN 0034A Copyright ARM Limited

AHB Trace Macrocell (HTM) AMBA. Technical Reference Manual. Revision: r0p4. Copyright ARM Limited. All rights reserved.

Designing with ALTERA SoC Hardware

Tracking the Virtual World

FPGA Adaptive Software Debug and Performance Analysis

Modular ARM System Design

Contents of this presentation: Some words about the ARM company

Contents. Cortex M On-Chip Emulation. Technical Notes V

XDS560 Trace. Technology Showcase. Daniel Rinkes Texas Instruments

PTM -A9. CoreSight. Technical Reference Manual. Revision: r0p0. Copyright 2008 ARM Limited. All rights reserved. ARM DDI 0401A

RM4 - Cortex-M7 implementation

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

The Design of a Debugger Unit for a RISC Processor Core

Combining Arm & RISC-V in Heterogeneous Designs

Designing with ALTERA SoC

UAD2 + Universal Access Device2 plus

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews

DOMAIN TECHNOLOGIES INC. Users Guide Version 2.0 SB-USB2. Emulator

Using ARM ETB with TI CCS. CCS 3.3 with SR9 on TMS320DM6446

The ARM10 Family of Advanced Microprocessor Cores

Optimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics

ARM ARCHITECTURE. Contents at a glance:

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

MCUXpresso IDE Instruction Trace Guide. Rev May, 2018 User guide

Design and Implementation of a FPGA-based Pipelined Microcontroller

Embedded Trace Buffer

2-bit ARM Cortex TM -M3 based Microcontroller FM3 Family MB9A130 Series

Error Detection by Code Coverage Analysis without Instrumenting the Code

Assembling and Debugging VPs of Complex Cycle Accurate Multicore Systems. July 2009

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor

Nexus Instrumentation architectures and the new Debug Specification

Programming Multicore Systems

DoCD IP Core. DCD on Chip Debug System v. 6.02

Support for RISC-V. Lauterbach GmbH. Bob Kupyn Lauterbach Markus Goehrle - Lauterbach GmbH

TRACE32. Product Overview

Implementing debug. and trace access. through functional I/O. Alvin Yang Staff FAE. Arm Tech Symposia Arm Limited

Advanced Debugging using the Ashling MPC5500 tools

Cortex-M3 Family On-Chip Emulation

ETM -A5. CoreSight. Technical Reference Manual. Revision: r0p2. Copyright 2009, 2010 ARM. All rights reserved. ARM DDI 0435C (ID072915)

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

ARM s IP and OSCI TLM 2.0

A High-Level Language and Compiler to Configure the Multi-Core Debug Solution

AMBA AHB Bus Protocol Checker

TN0132 Technical note

SEMICON Solutions. Bus Structure. Created by: Duong Dang Date: 20 th Oct,2010

Software Design Challenges for heterogenic SOC's

_ V ST STM8 Family On-Chip Emulation. Contents. Technical Notes

System Level Instrumentation using the Nexus specification

RISC-V Core IP Products

4 DEBUGGING. In This Chapter. Figure 2-0. Table 2-0. Listing 2-0.

Intellectual Property Macrocell for. SpaceWire Interface. Compliant with AMBA-APB Bus

Performance of AHB Bus Tracer with Dynamic Multiresolution and Lossless Real Time Compression

System Performance Optimization Methodology for Infineon's 32-Bit Automotive Microcontroller Architecture

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

From Hardware Trace to. System Knowledge

Nexus Makin Multi- Core Work

It's not about the core, it s about the system

The Definitive Guide to the ARM Cortex-M3

DEVELOPMENT OF A DEBUG MODULE FOR A FPGA-BASED MICROCONTROLLER. Rainer Bermbach, Martin Kupfer

Development Tools. 8-Bit Development Tools. Development Tools. AVR Development Tools

picojava I Java Processor Core DATA SHEET DESCRIPTION

Software Defined Modem A commercial platform for wireless handsets

Building High Performance, Power Efficient Cortex and Mali systems with ARM CoreLink. Robert Kaye

Design & Implementation of AHB Interface for SOC Application

NEC 78K0- Family On-Chip Emulation

Designing, developing, debugging ARM Cortex-A and Cortex-M heterogeneous multi-processor systems

Copyright 2016 Xilinx

Overview of Development Tools for the ARM Cortex -A8 Processor George Milne March 2006

Copyright 2014 Xilinx

Next Generation Multi-Purpose Microprocessor

Buses. Maurizio Palesi. Maurizio Palesi 1

ARM Cortex-M and RTOSs Are Meant for Each Other

Chapter 7 Debugging Support

DS-251 In-Circuit Emulator

How to Select Hardware forvolume IoT Deployment?

Beyond TrustZone Security Enclaves Reed Hinkel Senior Manager Embedded Security Market Develop

COMPARISON BETWEEN GR740, LEON4-N2X AND NGMP

Design Choices for FPGA-based SoCs When Adding a SATA Storage }

Digital Systems Design. System on a Programmable Chip

DRAFT. Joined up debugging and analysis in the RISC-V world RISC-V Workshop November DRAFT

Computer Organization ECE514. Chapter 5 Input/Output (9hrs)

Bus AMBA. Advanced Microcontroller Bus Architecture (AMBA)

On-Chip Debugging of Multicore Systems

LEON4: Fourth Generation of the LEON Processor

EFM32 Series 0: DMA (ARM PrimeCell µdma PL230)

The Next Steps in the Evolution of ARM Cortex-M

Analyzing and Debugging Performance Issues with Advanced ARM CoreLink System IP Components

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

System-wide visibility in post-silicon to drive meaningful analytics

Getting Started with Red Trace

CoreTile Express for Cortex-A5

Transcription:

Managing Complex Trace Filtering and Triggering Capabilities of CoreSight Jens Braunes pls Development Tools

Outline 2 Benefits and challenges of on-chip trace The evolution of embedded systems and the requirements on debugging The CoreSight architecture and programming model A standardized approach for high system visibility Managing the programming model The requirements to the debug tools Architecture description for debugger adaptation Provide all needed information to adapt the debugger Conclusion

Benefits and Challenges of On-Chip Trace

Evolution of Embedded Systems 4 Embedded systems in the past: 1 processor 1 bus Low clock rates Etc. Debugging was reasonable simple Embedded systems today and in future: Many processors Many busses High clock rates Etc. Debugging getting more and more complex

Two Worlds of Debugging 5 Traditional debugging No real world execution possible Execution externally controlled (debugger) Typical tools: breakpoints, watchpoints, single step execution Invasive - core halted Tracing Non-invasive - core runs at full speed Collect executed instructions / data transfers Traced data delivered off-chip in real-time or stored in on-chip trace buffer

On-Chip Trace 6 Limitations of trace: Trace port with limited bandwidth High pin costs low pin count required Trace memory with limited capacity Only relevant data has to be captured Paradigm shift from post-trace analysis to pre-trace specification User has to specify What has to be captured? When it has to be captured?

On-Chip Trace (cont) 7 On-Chip trace preprocessing requires extensive HW support: On-chip filter capabilities Trace data compression Trigger logic Cross triggers (multi-core / multi-component) Savings of pin costs outbalance area consumption CoreSight is ARMs on-chip trace solution for future SoCs and multi-core systems

The CoreSight Architecture and Programming Model

CoreSight On-Chip Debug Architecture For details: ARM; CoreSight Components Technical Reference Manual 9 Cross Trigger Interface Cross Trigger Interface Cross Trigger Interface Cross Trigger Interface

CoreSight Features and Capabilities 10 Debug Access Port (DAP) provides real-time access to JTAG scan chains, AMBA busses, debug / trace registers Embedded Trace Macrocell (ETM): Non-intrusive observation of core internal busses (instructions and data) Event driven trace capture Powerful user configurable triggers and filters Embedded Cross Trigger (ECT) distributes debug events between cores or ETMs AHB Trace Macrocells (HTM) allows observation of bus operations, not visible by ETMs Trace funnel combines multiple trace sources into a single trace stream Embedded Trace Buffer (ETB) for on-chip storage of captured trace data Cross Trigger Interface Cross Trigger Interface Cross Trigger Interface Cross Trigger Interface

CoreSight Programming Model 11 Everything is hierarchical Overall system is build from components (ETMs, HTMs, Embedded Cross Trigger,...) Register based programming model for each CoreSight component Registers for identification and management Component specific control registers Memory mapped interface to provide access to component registers Typically access via AMBA 3 APB

Managing the Programming Model

Example: Programming the ETM 13 Controlling tracing program the control registers Resources for filtering and triggering Comparators (addresses, address ranges, data, context ID) Counters, sequencer External inputs? From the users perspective: Which functionality is is behind it? it? Example Enable trace recording

Example: Programming the ECT 14 Routing of events between CoreSight components via channels Programmable connections of external inputs/outputs TrigOut[0] from/to channels? TrigOut[1] From the users perspective: TrigOut[2] Which functionality is is behind it? it? Core enters dbg state Trace trigger event SW generated event Breakpoint Embedded Cross Trigger TrigIn[0] TrigIn[1] TrigIn[2] Dbg request for other cores Cross Trigger Interface TriggerToChannel[0] TriggerToChannel[0] TriggerToChannel[0] Trace trigger event ChannelToTrigger[0] ChannelToTrigger[0] ChannelToTrigger[0] ChOut[0] ChOut[1] ChIn[0] ChIn[1] Channel 0 Channel 1 Channel 2 Channel 3 Example Triggers channels assignment (simplified) ETB RAM wrapped out Generate interrupt

Managing Complex Programming Model 15 Large number of registers to program Fundamental trace functionality mapped to more than one register E.g. start trace at address A and stop trace at address B: Cross Trigger Interface Cross Trigger Interface Cross Trigger Interface 1. Set address comparators to recognize A and B 2. Set register TraceEnableEvent To always enable tracing 3. Set register TraceEnableCtrl1 To activiate trace start/stop logic To ignore all include/exclude addresses and address ranges Cross Trigger Interface 4. Set register TraceStartStop To start trace at address A To stop trace at address B

Managing Complex Programming Model 16 User do not like to know details about the internals User has a certain debug task in mind Complexity have to be hidden by debugger Two possibilities: 1. Dialog based: All configurations set up by using fixed dialog boxes 'Hard-coded' functionality Customizable by using parameters Inflexible in terms of target configuration 2. Language-based: Trigger and filter setup by using a definition language Functionality can be build from atomic language elements Flexible in terms of target configuration

Language-based Debug Configuration 17 Realized in the Universal Emulation Configurator Adaptable to to different on-chip emulators! User-friendly configuration of on-chip emulators Hardware realization But: transparent to the user, Different knowledge modules about real at at lowest debug level hardware for different not necessary on-chip debug Nevertheless architectures experts keep full control

Full Adaptation of Debug Tool 18 What is missing here? Definition of trace functionality Mapping of trace functions to HW resources Architecture Specification Mechanism to adapt the debugger Debugger

Architecture Description for Debugger Adaptation

HW Dependent Configuration Language 20 Adaptation focuses on HW dependent configuration language Very simple grammar: <setting> = <value>; <action> = <condition statement>; etm.addr_comp[1].addr = 0x12340000; 0x12340000; etm.addr_comp[2].accs_type = DATA_LOAD; DATA_LOAD;...... etm.trace_start etm.trace_start = etm.addr_comp[1]; etm.trace_stop etm.trace_stop = etm.addr_comp[2] or or etm.addr_comp[3] or or etm.addr_comp[4]; etm.trace_disable = etm.addr_rng[3] etm.addr_rng[3] or or etm.addr_rng[4];

Extended Architecture Description 21 Based on component/system descriptions, e.g. IP-XACT Contains description of Debug components (ETM, ETC,...) Debug registers (memory mappings, bit fields,...) Signals / interconnects between debug components (cross triggers) Extensions to add semantic information Debug objects: can be used within statements of configuration language Operations: realize the required trace/debug functionality Encodings (associated to debug objects as well as operations): bit field values of debug registers

Debug Objects Constant values (comparator values, setups,...) etm.addr_comp[1].addr = 0x12340000; etm.addr_comp[1].accs_type = DATA_LOAD; HW generated events (matching addresses/data/ranges, cross triggers,...) etm.<action> = etm.addr_comp[1]; Virtual events which are realized using combinations of HW events (true, false,...) etm.<action> = true; Actions (trace enable, fire cross trigger event, start counter,...) etm.trace_start = <condition>; etm.trace_dissable = <condition>; Debug objects may contain encodings for different registers (bit fields) to be selected depending on operations 22

Operations and Encodings Operations realize the connection between the meaning of language statements and appropriate register settings Fundamental trace operations (counterparts to action objects) are composed of sub-operations Operations / sub-operations defined by Their function Operands (either events or other sub-operations) Sub-operations represent basic functionality (negation, and, or,...) directly realized by HW In the end sub-operations can be directly mapped to register settings Operations / sub-operations may contain encodings for different registers (bit fields) 23

Operations and Encodings (cont) 24 Definition of operation/ sub-operation with multiple operands Two registers need to be set Constant values Values derived from operands Operand definitions refers to debug objects (events) and inherit encodings from them <operation name="foo" type="multiple" operator="or"> <registersettings> <registerref ref="register_1"> <fieldval ref="field_a">0x6f</fieldval> <fieldval ref="field_b">0x0</fieldval> </registerref> <registerref ref="register_2"> <fieldval ref="addr_1"> <operandref ref="operand_1"/> </fieldval>... </registerref> </registersettings> <operand name="operand_1"> <eventref ref="event_1"> <codingref ref="bitselect"/> </eventref> </operand> <operand name="operand_2">... </operation>

From Operations to Register Settings 25 Connecting sub-operations via operands to build fundamental trace functions Collecting register settings by traversing the tree: Register settings directly extracted Register settings inherited from operands

Conclusion

Conclusion 27 Non-invasive visibility of the operation of the system required Even its multi-core Even on high clock rates (full speed) On-Chip debug and trace support (CoreSight) Complex on-chip triggers and filters has to be programmed Different configurations of debug system depending on SoC architecture High demands on tool support Easy to use Flexible in terms of debug target Adaptation of debugger using an architecture description Extensions to common architecture specifications (IP-XACT,...) to bridge the gap between pure component description and functional description

Thank You pls Development Tools 50 Airport Parkway San Jose, CA 95110-1011 USA Phone: (408) 451 8408 Fax: (408) 437 7777 Toll Free: (877) 77DEBUG Web: www.pls-mc.com Email: info@pls-mc.com Visit us at booth 608