ABSTRACT
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.
- R. Backasch, C. Hochberger, A. Weiss, M. Leucker, and R. Lasslop. 2013. Runtime Verification for Multicore SoC with High-quality Trace Data. ACM TODAES 18, 2 (2013). Google ScholarDigital Library
- A. Basak, S. Bhunia, and S. Ray. 2016. Exploiting design-for-debug for flexible SoC security architecture. In DAC. ACM. Google ScholarDigital Library
- S. Chandran, P. R. Panda, S. R. Sarangi, A. Bhattacharyya, D. Chauhan, and S. Kumar. 2017. Managing Trace Summaries to Minimize Stalls During Postsilicon Validation. IEEE TVLSI 25, 6 (2017).Google Scholar
- N. Decker, P. Gottschling, C. Hochberger, M. Leucker, T. Scheffel, M. Schmitz, and A. Weiss. 2017. Rapidly Adjustable Non-intrusive Online Monitoring for Multi-core Systems. In SBMF. Springer.Google Scholar
- D. Y Deng, D. Lo, G. Malysa, S. Schneider, and G E. Suh. 2010. Flexible and efficient instruction-grained run-time monitoring using on-chip reconfigurable fabric. In MICRO. IEEE. Google ScholarDigital Library
- F. Farahmandi, R. Morad, A. Ziv, Z. Nevo, and P. Mishra. 2017. Cost-effective analysis of post-silicon functional coverage events. In DATE. IEEE. Google ScholarDigital Library
- P. Fogarty, C. MacNamee, and D. Heffernan. 2013. On-chip support for software verification and debug in multi-core embedded systems. IET Software 7, 1 (2013).Google Scholar
- J.R Hauser and J. Wawrzynek. 1997. Garp: A MIPS processor with a reconfigurable coprocessor. In IEEE FCCM. Google ScholarDigital Library
- S. Jakšić, E. Bartocci, R. Grosu, R. Kloibhofer, T. Nguyen, and D. Ničkovié. 2015. From signal temporal logic to FPGA monitors. In MEMOCODE. IEEE.Google Scholar
- N. Jindal, P. R. Panda, and S. R Sarangi. 2018. Reusing Trace Buffers as Victim Caches. IEEE TVLSI 26, 9 (2018).Google ScholarCross Ref
- H. F. Ko and N. Nicolici. 2010. Automated trace signals selection using the RTL descriptions. In ITC. IEEE.Google Scholar
- C. Lai, Y. Yang, and I. Huang. 2014. A Versatile Data Cache for Trace Buffer Support. IEEE TCSI 61, 11 (2014).Google Scholar
- H. Lu and A. Forin. 2008. Automatic processor customization for zero-overhead online software verification. IEEE TVLSI 16, 10 (2008). Google ScholarDigital Library
- A. Nassar, F. J Kurdahi, and W. Elsharkasy. 2015. NUVA: architectural support for runtime verification of parametric specifications over multicores. In CASES. IEEE. Google ScholarDigital Library
- W. Shi, H. S Lee, L. Falk, and M. Ghosh. 2006. An integrated framework for dependable and revivable architectures using multicore processors. ACM SIGARCH CA News 34, 2. Google ScholarDigital Library
- D. Solet, J. Béchennec, M. Briday, S. Faucou, and S. Pillement. 2016. Hardware runtime verification of embedded software in SoPC. In SIES. IEEE.Google Scholar
- G. Stitt, B. Grattan, J. Villarreal, and F. Vahid. 2002. Using on-chip configurable logic to reduce embedded system software energy. In FCCM. IEEE. Google ScholarDigital Library
- E. Vlachos, M. L Goodstein, M. A Kozuch, S. Chen, B. Falsafi, P. B Gibbons, and T. C Mowry. 2010. ParaLog: Enabling and accelerating online parallel monitoring of multithreaded applications. ACM SIGARCH CA News 38, 1. Google ScholarDigital Library
Recommendations
Towards Distributed Runtime Monitoring with C++ Contracts
COINS '19: Proceedings of the International Conference on Omni-Layer Intelligent SystemsDesign by Contract supports the specification of the intended behavior of a software component at its interfaces. Out of these specifications, runtime monitors can be generated. While those runtime monitors check the correct behavior of the software ...
Automatic Construction of Runtime Monitors for FPGA Based Designs
ISED '11: Proceedings of the 2011 International Symposium on Electronic System DesignThe failure of a hardware design may be catastrophic if there is a bug that exhibits during runtime. Such bugs may remain in the implementation due to shortfall in conventional testing and are referred to as corner case bugs. Runtime monitoring of ...
Partially Evaluating Finite-State Runtime Monitors Ahead of Time
Finite-state properties account for an important class of program properties, typically related to the order of operations invoked on objects. Many library implementations therefore include manually written finite-state monitors to detect violations of ...
Comments