DiaSys: On-Chip Trace Analysis for Multi-processor System-on-Chip
To find the cause of a functional or non-functional defect (bug) in software running on multi-processor System-on-Chip (MPSoC), developers need insight into the chip. For that, most of today’s SoCs have hardware tracing support. Unfortunately, insight is restricted by the insufficient off-chip bandwidth, a problem which is expected to become more severe in the future as more functionality is integrated on-chip. In this paper, we present a novel tracing system architecture, the diagnosis system “DiaSys.” It moves the analysis of the trace data from the debugging tool on a host PC into the chip, avoiding the off-chip bandwidth bottleneck. To enable on-chip processing, we propose to move away from trace data streams towards self-contained diagnosis events. These events can then be transformed on-chip by processing nodes to increase the information density, and then be transferred off-chip with less bandwidth. We evaluate the concept with a prototype hardware implementation, which we use to find a functional software bug. We show that on-chip trace processing can significantly lower the off-chip bandwidth requirements, while providing insight into the software execution equal to existing tracing solutions.
KeywordsDebugging Tracing MPSoC SoC architectures
This work was funded by the Bayerisches Staatsministerium für Wirtschaft und Medien, Energie und Technologie (StMWi) as part of the project “SoC Doctor,” and by the German Research Foundation (DFG) as part of the Transregional Collaborative Research Centre “Invasive Computing” (SFB/TR 89). The responsibility for the content remains with the authors.
- 1.CoreSight - ARMGoogle Scholar
- 2.The Nexus 5001 Forum Standard for a Global Embedded Processor Debug Interface, Version 2.0. Technical report, December 2003Google Scholar
- 3.Cantrill, B.M., Shapiro, M.W., Leventhal, A.H.: Dynamic instrumentation of production systems. In: Proceedings of the General Track: 2004 USENIX Annual Technical Conference, ATEC 2004. USENIX Association, Berkeley (2004)Google Scholar
- 4.Ducassé, M.: Coca: an automated debugger for C. In: Proceedings of the 21st International Conference on Software Engineering, ICSE 1999, pp. 504–513. ACM, New York (1999)Google Scholar
- 5.Eigler, F.C., Prasad, V., Cohen, W., Nguyen, H., Hunt, M., Keniston, J., Chen, B.: Architecture of systemtap: a Linux trace/probe tool (2005)Google Scholar
- 7.Gray, J.: Why do computers stop and what can be done about it? In: Symposium on Reliability in Distributed Software and Database Systems, Los Angeles, CA, USA, pp. 3–12 (1986)Google Scholar
- 9.IPextreme: Infineon Multi-Core Debug Solution: Product Brochure (2008)Google Scholar
- 10.Marceau, G., Cooper, G., Krishnamurthi, S., Reiss, S.: A dataflow language for scriptable debugging. In: Proceedings of the 19th International Conference on Automated Software Engineering, pp. 218–227, September 2004Google Scholar
- 12.Orme, W.: Debug and Trace for Multicore SoCs (ARM white paper), September 2008Google Scholar
- 13.Uzelac, V., Milenković, A., Burtscher, M., Milenković, M.: Real-time unobtrusive program execution trace compression using branch predictor events. In: Proceedings of the 2010 International Conference on Compilers, Architectures and Synthesis for Embedded Systems, CASES 2010, pp. 97–106. ACM, New York (2010)Google Scholar