DHOOM: Reusing Design-for-Debug Hardware for Online Monitoring

Runtime verification employs dedicated hardware or software monitors to check whether program properties hold at runtime. However, these monitors often incur high area and performance overheads depending on whether they are implemented in hardware or software. In this work, we propose DHOOM, an architectural framework for runtime monitoring of program assertions, which exploits the combination of a reconfigurable fabric present alongside a processor core with the vestigial on-chip Design-for-Debug hardware. This combination of hardware features allows DHOOM to minimize the overall performance overhead of runtime verification, even when subject to a given area constraint. We present an algorithm for dynamically selecting an effective subset of assertion monitors that can be accommodated in the available programmable fabric, while instrumenting the remaining assertions in software. We show that our proposed strategy, while respecting area constraints, reduces the performance overhead of runtime verification by up to 32% when compared with a baseline of software-only monitors.

[1]  Donal Heffernan,et al.  On-chip support for software verification and debug in multi-core embedded systems , 2013, IET Softw..

[2]  John Wawrzynek,et al.  Garp: a MIPS processor with a reconfigurable coprocessor , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[3]  Fadi J. Kurdahi,et al.  NUVA: Architectural support for runtime verification of parametric specifications over multicores , 2015, 2015 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[4]  Frank Vahid,et al.  Using on-chip configurable logic to reduce embedded system software energy , 2002, Proceedings. 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[5]  Hsien-Hsin S. Lee,et al.  An Integrated Framework for Dependable and Revivable Architectures Using Multicore Processors , 2006, 33rd International Symposium on Computer Architecture (ISCA'06).

[6]  Chun-Hung Lai,et al.  A Versatile Data Cache for Trace Buffer Support , 2013, IEEE Transactions on Circuits and Systems I: Regular Papers.

[7]  Martin Leucker,et al.  Rapidly Adjustable Non-intrusive Online Monitoring for Multi-core Systems , 2017, SBMF.

[8]  Smruti R. Sarangi,et al.  Reusing Trace Buffers as Victim Caches , 2018, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[9]  Hong Lu,et al.  Automatic Processor Customization for Zero-Overhead Online Software Verification , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[10]  Nicola Nicolici,et al.  Automated trace signals selection using the RTL descriptions , 2010, 2010 IEEE International Test Conference.

[11]  Babak Falsafi,et al.  ParaLog: enabling and accelerating online parallel monitoring of multithreaded applications , 2010, ASPLOS XV.

[12]  Martin Leucker,et al.  Runtime verification for multicore SoC with high-quality trace data , 2013, TODE.

[13]  Dejan Nickovic,et al.  From signal temporal logic to FPGA monitors , 2015, 2015 ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE).

[14]  Smruti R. Sarangi,et al.  Managing Trace Summaries to Minimize Stalls During Postsilicon Validation , 2017, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[15]  Sébastien Pillement,et al.  Hardware runtime verification of embedded software in SoPC , 2016, 2016 11th IEEE Symposium on Industrial Embedded Systems (SIES).

[16]  Swarup Bhunia,et al.  Exploiting design-for-debug for flexible SoC security architecture , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[17]  G. Edward Suh,et al.  Flexible and Efficient Instruction-Grained Run-Time Monitoring Using On-Chip Reconfigurable Fabric , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[18]  Avi Ziv,et al.  Cost-effective analysis of post-silicon functional coverage events , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.