Advertisement

Integrating Software and Hardware Verification

  • Marie-Christine JakobsEmail author
  • Marco Platzner
  • Heike Wehrheim
  • Tobias Wiersema
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8739)

Abstract

Verification of hardware and software usually proceeds separately, software analysis relying on the correctness of processors executing instructions. This assumption is valid as long as the software runs on standard CPUs that have been extensively validated and are in wide use. However, for processors exploiting custom instruction set extensions to meet performance and energy constraints the validation might be less extensive, challenging the correctness assumption.

In this paper we present an approach for integrating software analyses with hardware verification, specifically targeting custom instruction set extensions. We propose three different techniques for deriving the properties to be proven for the hardware implementation of a custom instruction in order to support software analyses. The techniques are designed to explore the trade-off between generality and efficiency and span from proving functional equivalence over checking the rules of a particular analysis domain to verifying actual pre and post conditions resulting from program analysis. We demonstrate and compare the three techniques on example programs with custom instructions, using state-of-the-art software and hardware verification techniques.

Keywords

Model Check Abstract Domain Custom Instruction Transfer Relation Conjunctive Normal Form Formula 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Beyer, D.: Status report on software verification. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 373–388. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  2. 2.
    Beyer, D., Henzinger, T., Théoduloz, G.: Configurable software verification: Concretizing the convergence of model checking and program analysis. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 504–518. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Beyer, D., Keremoglu, M.E.: CPAchecker: A Tool for Configurable Software Verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. 4.
    Biere, A.: PicoSAT essentials. JSAT 4(2-4), 75–97 (2008)zbMATHGoogle Scholar
  5. 5.
    Clark, N., Blome, J., Chu, M., Mahlke, S., Biles, S., Flautner, K.: An architecture framework for transparent instruction set customization in embedded processors. In: ISCA, pp. 272–283. IEEE Computer Society (2005)Google Scholar
  6. 6.
    Clarke, E., Kroening, D.: Hardware verification using ANSI-C programs as a reference. In: ASP-DAC, pp. 308–311. ACM (2003)Google Scholar
  7. 7.
    Drzevitzky, S., Kastens, U., Platzner, M.: Proof-carrying hardware: Towards runtime verification of reconfigurable modules. In: ReConFig, pp. 189–194. IEEE (2009)Google Scholar
  8. 8.
    Erkok, L., Carlsson, M., Wick, A.: Hardware/software co-verification of cryptographic algorithms using Cryptol. In: FMCAD, pp. 188–191. IEEE (2009)Google Scholar
  9. 9.
    Galuzzi, C., Bertels, K.: The instruction-set extension problem: A survey. ACM Trans. Reconfigurable Technol. Syst. 4(2), 18:1–18:28 (2011)Google Scholar
  10. 10.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL, pp. 58–70. ACM (2002)Google Scholar
  11. 11.
    Horn, A., Tautschnig, M., Val, C., Liang, L., Melham, T., Grundy, J., Kroening, D.: Formal co-validation of low-level hardware/software interfaces. In: FMCAD, pp. 121–128. IEEE (2013)Google Scholar
  12. 12.
    Kurshan, R., Levin, V., Minea, M., Peled, D., Yenigun, H.: Verifying hardware in its software context. In: CAD, pp. 742–749. IEEE (1997)Google Scholar
  13. 13.
    Li, J., Xie, F., Ball, T., Levin, V., McGarvey, C.: An Automata-Theoretic Approach to Hardware/Software Co-verification. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 248–262. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  14. 14.
    Loitz, S., Wedler, M., Brehm, C., Vogt, T., Wehn, N., Kunz, W.: Proving functional correctness of weakly programmable IPs - a case study with formal property checking. In: SASP, pp. 48–54. IEEE (2008)Google Scholar
  15. 15.
    Mishchenko, A., Chatterjee, S., Brayton, R.K., Eén, N.: Improvements to combinational equivalence checking. In: ICCAD, pp. 836–843. ACM (2006)Google Scholar
  16. 16.
    de Moura, L.M., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Commun. ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  17. 17.
    Necula, G.C.: Proof-carrying code. In: POPL, pp. 106–119. ACM (1997)Google Scholar
  18. 18.
    Necula, G., McPeak, S., Rahul, S., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  19. 19.
    Nguyen, M., Wedler, M., Stoffel, D., Kunz, W.: Formal hardware/software co-verification by interval property checking with abstraction. In: DAC, pp. 510–515. ACM (2011)Google Scholar
  20. 20.
    Rose, J., Luu, J., Yu, C.W., Densmore, O., Goeders, J., Somerville, A., Kent, K.B., Jamieson, P., Anderson, J.: The VTR project: Architecture and CAD for FPGAs from Verilog to Routing. In: FPGA, pp. 77–86. ACM (2012)Google Scholar
  21. 21.
    Sankaranarayanan, S., Ivancic, F.: Necla static analysis benchmarks (necla-static-small) v1.1, http://www.nec-labs.com/research/system/systems_SAV-website/small_static_bench-v1.1.tar.gz
  22. 22.
    Wagner, I., Bertacco, V.: Post-Silicon and Runtime Verification for Modern Processors. Springer (2011)Google Scholar
  23. 23.
    Xie, F., Yang, G., Song, X.: Component-based hardware/software co-verification for building trustworthy embedded systems. Journal of Systems and Software 80(5), 643–654 (2007)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Marie-Christine Jakobs
    • 1
    Email author
  • Marco Platzner
    • 1
  • Heike Wehrheim
    • 1
  • Tobias Wiersema
    • 1
  1. 1.University of PaderbornPaderbornGermany

Personalised recommendations