Obtaining consistent global state dumps to interactively debug systems on chip with multiple clocks

Post-silicon debugging of a system on chip (SOC) is complex due to (1) the intrinsic limits on the internal observability, (2) the absence of a single global clock, and (3) the need for asynchronous intellectual property (IP) blocks to interact with each other. These aspects prevent the instantaneous capture of a complete and consistent state of the SOC, and make the SOC non-deterministic at both the clock cycle level and the behavioral level. To debug an embedded system when the states that are extracted are irreproducible and inconsistent is nearly impossible. In this paper, we therefore introduce a method to capture a consistent, complete state of a multiple-clock SOC for interactive debugging. We reuse the same functionality that is used to ensure correct functional communication between asynchronous IP blocks, namely the handshake signals common in on-chip communication protocols. We merge the required on-chip hardware to support this debug functionality with the traditional debug architecture that reuses the manufacturing scan chains for debug. Our experimental results show that it is possible to ensure a globally consistent state is observed when the system is stopped on a breakpoint event.

[1]  Ajay D. Kshemkalyani,et al.  Distributed Computing: Index , 2008 .

[2]  Ajay D. Kshemkalyani,et al.  Distributed Computing: Principles, Algorithms, and Systems , 2008 .

[3]  Yu-Chin Hsu,et al.  Visibility enhancement for silicon debug , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[4]  David G. Messerschmitt,et al.  Synchronization in Digital System Design , 1990, IEEE J. Sel. Areas Commun..

[5]  D. J. Kinniment Synchronization and Arbitration in Digital Systems , 2008 .

[6]  Ieee Standard Test Access Port and Boundary-scan Architecture Ieee-sa Standards Board , 2001 .

[7]  P. Gargini,et al.  The International Technology Roadmap for Semiconductors (ITRS): "Past, present and future" , 2000, GaAs IC Symposium. IEEE Gallium Arsenide Integrated Circuits Symposium. 22nd Annual Technical Digest 2000. (Cat. No.00CH37084).

[8]  B. Vermeulen,et al.  Core-based scan architecture for silicon debug , 2002, Proceedings. International Test Conference.

[9]  Qiang Xu,et al.  In-band Cross-Trigger Event Transmission for Transaction-Based Debug , 2008, 2008 Design, Automation and Test in Europe.

[10]  Rodham E. Tulloss,et al.  The Test Access Port and Boundary Scan Architecture , 1990 .

[11]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[12]  Brecht Vermeulen,et al.  Debugging multi-core systems-on-chip , 2010 .

[13]  Bart Vermeulen,et al.  Silicon debug: scan chains alone are not enough , 1999, International Test Conference 1999. Proceedings (IEEE Cat. No.99CH37034).

[14]  Doug Josephson,et al.  The good, the bad, and the ugly of silicon debug , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[15]  Nicola Nicolici,et al.  Automated Trace Signals Identification and State Restoration for Improving Observability in Post-Silicon Validation , 2008, 2008 Design, Automation and Test in Europe.

[16]  Peter Dahlgren,et al.  Latch divergency in microprocessor failure analysis , 2003, International Test Conference, 2003. Proceedings. ITC 2003..

[17]  Kees Goossens,et al.  Debugging Distributed-Shared-Memory Communication at Multiple Granularities in Networks on Chip , 2008 .

[18]  Kees G. W. Goossens,et al.  A Monitoring-Aware Network-on-Chip Design Flow , 2006, 9th EUROMICRO Conference on Digital System Design (DSD'06).

[19]  R. Leatherman,et al.  An embedding debugging architecture for SOCs , 2005, IEEE Potentials.

[20]  Wolfgang Fichtner,et al.  Practical design of globally-asynchronous locally-synchronous systems , 2000, Proceedings Sixth International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC 2000) (Cat. No. PR00586).

[21]  Sandeep Kumar Goel,et al.  Hierarchical data invalidation analysis for scan-based debug on multiple-clock system chips , 2002, Proceedings. International Test Conference.

[22]  Jong-Deok Choi,et al.  Breakpoints and halting in distributed programs , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[23]  Don Douglas Josephson,et al.  Debug methodology for the McKinley processor , 2001, Proceedings International Test Conference 2001 (Cat. No.01CH37260).

[24]  Kees Goossens,et al.  A Network-on-Chip monitoring infrastructure for communication-centric debug of embedded multi-processor SoCs , 2009, 2009 International Symposium on VLSI Design, Automation and Test.

[25]  Renu Raman,et al.  MicroSPARC: a case-study of scan based debug , 1994, Proceedings., International Test Conference.