Abstract
Virtual Platforms (VPs) are advantageous to develop and debug complex software for multi- and many-processor systems-on-chip (MPSoCs). VPs provide unrivaled controllability and visibility of the target, which can be exploited to examine bugs that cannot be reproduced easily in real hardware (e.g., bugs originating from races or happening during a processor stand-by state). However, VPs as employed in practice for debugging are generally underutilized. The accompanying debug ecosystem is based mostly on traditional tools, such as step-based debuggers and traces, that fall short to address the enormous complexity of modern MPSoCs and their parallel software. Finding a bug is still largely left to the developer’s experience and intuition, using manual means rather than automated or systematic solutions that exploit the controllability and visibility of VPs. Profiting from VPs for MPSoC software debugging is an open question. To bridge this gap, this article presents a novel framework for debug visualization and execution control that, relying on the many benefits of VPs, helps to identify and test possible concurrency-related bug scenarios. The framework allows examining and steering the target system by manipulating an abstract graph that highlights relevant inter-component interactions and dependencies. The proposed framework reduces the effort required to understand complex concurrency patterns and helps to expose bugs. Its efficacy is demonstrated on (i) a shared memory symmetric multi-processing platform executing Linux and parallel benchmarks, and (ii) a distributed automotive system for driver assistance applications.
- Daniel Aarno and Jakob Engblom. 2014. Software and System Development Using Virtual Platforms: Full-System Simulation with Wind River Simics. Morgan Kaufmann, Waltham, MA. Google Scholar
Digital Library
- Rahul Agarwal and Scott D. Stoller. 2006. Run-time detection of potential deadlocks for programs with locks, semaphores, and condition variables. In Proceedings of the 2006 Workshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD’06). 51--60. Google Scholar
Digital Library
- ARM. 2015. Fast Models. Retrieved September 2015 from http://www.arm.com/products/tools/models/fast-models.Google Scholar
- Ròbert Lajos Bücs, Luis Gabriel Murillo, Ekaterina Korotcenko, Gaurav Dugge, Rainer Leupers, Gerd Ascheid, Andreas Ropers, Markus Wedler, and Andreas Hoffmann. 2015. Virtual hardware-in-the-loop co-simulation for multi-domain automotive systems via the functional mock-up interface. In Proceedings of the Forum on Specification and Design Languages (FDL’15). 1--6.Google Scholar
Cross Ref
- Jeronimo Castrillon, Aamer Shah, Luis Gabriel Murillo, Rainer Leupers, and Gerd Ascheid. 2011. Backend for virtual platforms with hardware scheduler in the MAPS framework. In Proceedings of the 2nd IEEE Latin American Symposium on Circuits and Systems (LASCAS’11). 1--4.Google Scholar
Cross Ref
- Jong-Deok Choi and Andreas Zeller. 2002. Isolating failure-inducing thread schedules. SIGSOFT Softw. Eng. Notes 27, 4 (July 2002), 210--220. Google Scholar
Digital Library
- Tom De Schutter. 2014. Better Software. Faster!: Best Practices in Virtual Prototyping. Synopsys Press, Mountain View, CA. Google Scholar
Digital Library
- Dawson Engler and Ken Ashcraft. 2003. RacerX: Effective, static detection of race conditions and deadlocks. SIGOPS Oper. Syst. Rev. 37, 5 (Oct. 2003), 237--252. Google Scholar
Digital Library
- Colin J. Fidge. 1988. Timestamps in message-passing systems that preserve the partial ordering In. Proceedings of the 11th Australian Computer Science Conference. 56--66.Google Scholar
- Graphviz. 2015a. Graph Visualization Software. Retreived September 2015 from http://www.graphviz.org.Google Scholar
- Graphviz. 2015b. gvpr: Graph Pattern Scanning and Processing Language. Retrieved September 2015 from www.graphviz.org/pdf/gvpr.1.pdf.Google Scholar
- Graphviz. 2015c. The DOT Language. Retrieved September 2015 from http://www.graphviz.org/content/ dot-language.Google Scholar
- Klaus Havelund and Thomas Pressburger. 2000. Model checking java programs using java pathfinder. Int. J. Softw. Tools Technol. Trans. 2, 4 (2000), 366--381.Google Scholar
Cross Ref
- ITRS. 2011. International Technology Roadmap for Semiconductors Design. Retrieved 2011 from http://www.itrs.net/.Google Scholar
- Pallavi Joshi, Mayur Naik, Chang-Seo Park, and Koushik Sen. 2009. CalFuzzer: An extensible active testing framework for concurrent programs. In Proceedings of the 21st International Conference on Computer Aided Verification (CAV’09). 675--681. Google Scholar
Digital Library
- Baris Kasikci, Cristian Zamfir, and George Candea. 2012. Data races vs. data race bugs: Telling the difference with portend. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVII). 185--198. Google Scholar
Digital Library
- Dieter Kranzlmüller, Siegfried Grabner, and Jens Volkert. 1997. Debugging with the MAD environment. Parallel Comput. 23, 1 (1997), 199--217. Google Scholar
Digital Library
- Joydip Kundu and Janice E. Cuny. 1995. A scalable, visual interface for debugging with event-based behavioral abstraction. In Proceedings of the 5th Symposium on the Frontiers of Massively Parallel Computation. IEEE, 472--479. Google Scholar
Digital Library
- Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978), 558--565. Google Scholar
Digital Library
- Thomas J. LeBlanc and John M. Mellor-Crummey. 1987. Debugging parallel programs with instant replay. IEEE Trans. Comput. 36, 4 (1987). Google Scholar
Digital Library
- Shan Lu, Soyeon Park, Chongfeng Hu, Xiao Ma, Weihang Jiang, Zhenmin Li, Raluca A. Popa, and Yuanyuan Zhou. 2007. MUVI: Automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. SIGOPS Operat. Syst. Rev. 41, 6 (Oct. 2007), 103--116. Google Scholar
Digital Library
- Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from mistakes: A comprehensive study on real world concurrency bug characteristics. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XIII). 329--339. Google Scholar
Digital Library
- Mathworks. 2015a. Matlab/Simulink. Retrieved 2015 from http://mathworks.com/products/simulink/.Google Scholar
- Mathworks. 2015b. Simulink Simscape Multi-Domain Physical System Library. Retrieved 2015 from mathworks.com/products/simscape/index.html.Google Scholar
- Luis Gabriel Murillo, Ròbert Lajos Bücs, Daniel Hincapie, Rainer Leupers, and Gerd Ascheid. 2015. SWAT: Assertion-based debugging of concurrency issues at system level. In Proceedings of the 20th Asia and South Pacific Design Automation Conference (ASP-DAC’15). 600--605.Google Scholar
Cross Ref
- Luis Gabriel Murillo, Juan Eusse, Jovana Jovic, Sergey Yakoushkin, Rainer Leupers, and Gerd Ascheid. 2012a. Synchronization for hybrid MPSoC full-system simulation. In Proceedings of the 49th Design Automation Conference. 121--126. Google Scholar
Digital Library
- Luis Gabriel Murillo, Julian Harnath, Rainer Leupers, and Gerd Ascheid. 2012b. Scalable and retargetable debugger architecture for heterogeneous MPSoCs. In Proceedings of the System, Software, SoC and Silicon Debug Conference (S4D’12). 1--6.Google Scholar
- Luis Gabriel Murillo, Simon Wawroschek, Jeronimo Castrillon, Rainer Leupers, and Gerd Ascheid. 2014. Automatic detection of concurrency bugs through event ordering constraints. In Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE’14). 1--6. Google Scholar
Digital Library
- Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. 2008. Finding and reproducing heisenbugs in concurrent programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). 267--280. Google Scholar
Digital Library
- Harold Pashler. 1994. Dual-task interference in simple tasks: Data and theory. Psychol. Bull. 116(2) (1994), 220--244.Google Scholar
- Idar Petersen. 2003. Wheel Slip Control in ABS Brakes using Gain Scheduled Optimal Control with Constraints. Ph.D. Dissertation. Department of Engineering Cybernetics, Norwegian University of Science and Technology Trondheim, Norway.Google Scholar
- Michiel Ronsse and Koen De Bosschere. 2000. Non-intrusive on-the-fly data race detection using execution replay. In Proceedings of the 4th International Workshop on Automated Debugging (AADEBUG’00). ACM, 148--163.Google Scholar
- Synopsys. 2015. Virtualizer Development Kits (VDK). Retrieved September 2015 from http://synopsys.com/ Prototyping/VirtualPrototyping/Virtualizer-Development.Google Scholar
- Univ. of Delaware. 2007. The Modified SPLASH-2. Retrieved September 2015 from http://www.capsl.udel.edu/splash/.Google Scholar
- Tingting Yu, Witawas Srisa-an, and Gregg Rothermel. 2012. SimTester: A controllable and observable testing framework for embedded systems. SIGPLAN Not. 47, 7 (Mar. 2012), 51--62. Google Scholar
Digital Library
- Tingting Yu, Witawas Srisa-an, and Gregg Rothermel. 2013. SimRacer: An automated framework to support testing for process-level races. In Proceedings of the 2013 International Symposium on Software Testing and Analysis (ISSTA’13). 167--177. Google Scholar
Digital Library
Index Terms
MPSoC Software Debugging on Virtual Platforms via Execution Control with Event Graphs
Recommendations
Debugging HW/SW interface for MPSoC: video encoder system design case study
DAC '04: Proceedings of the 41st annual Design Automation ConferenceThis paper reports a case study of multiprocessor SoC (MPSoC) design of a complex video encoder, namely OpenDivX. OpenDivX is a popular version of MPEG4. It requires massive computation resources and deals with complex data structures to represent video ...
A high-level virtual platform for early MPSoC software development
CODES+ISSS '09: Proceedings of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesisMultiprocessor System-on-Chips (MPSoCs) are nowadays widely used, but the problem of their software development persists to be one of the biggest challenges for developers. Virtual Platforms (VPs) are introduced to the industry, which allow MPSoC ...
Transaction level model simulator for NoC-based MPSoC platform
IMCAS'07: Proceedings of the 6th WSEAS International Conference on Instrumentation, Measurement, Circuits and SystemsNetwork-on-Chip (NoC) based Multi-Processor System-on-Chip (MPSoC) architecture is a promising SoC design solution, offering high computational power with lots of flexibilities. However, finding the optimal MPSoC architecture configuration remains an ...






Comments