Abstract
Timing analysis of safety-critical systems derives timing bounds of applications, or software (SW), executed on dedicated platforms, or hardware (HW). The ensemble HW–SW features, from a timing perspective, two different types of computation – a SW-specific, instruction-driven timing progression and a HW-specific, cycle-driven one. The two timings are unified under a concept of timing model, which is crucial to establish a sound and precise worst-case timing reasoning. In this paper, we propose an investigation on how to systematically derive and formally prove such timing models. Our approach is exemplified on a simple, accumulator-based processor called Lipsi.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Armstrong, A., et al.: ISA semantics for ARMv8-a, RISC-V, and CHERI-MIPS. PACMPL 3(POPL), 71:1–71:31 (2019)
Asavoae, M.: K semantics for assembly languages: a case study. Electr. Notes Theor. Comput. Sci. 304, 111–125 (2014)
Asavoae, M., Hedia, B.B., Jan, M.: Formal executable models for automatic detection of timing anomalies. In: 18th International Workshop on Worst-Case Execution Time Analysis, WCET 2018, pp. 2:1–2:13 (2018)
Bachrach, J., et al.: Chisel: constructing hardware in a Scala embedded language. In: Proceedings of the 49th Annual Design Automation Conference, DAC 2012, pp. 1216–1225. ACM (2012)
Beatty, D.L., Bryant, R.E.: Formally verifying a microprocessor using a simulation methodology. In: Proceedings of the 31st Conference on Design Automation, pp. 596–602 (1994)
Béchennec, J., Cassez, F.: Computation of WCET using program slicing and real-time model-checking. CoRR abs/1105.1633 (2011). http://arxiv.org/abs/1105.1633
Benveniste, A., Caspi, P., Edwards, S.A., Halbwachs, N., Guernic, P.L., de Simone, R.: The synchronous languages 12 years later. Proc. IEEE 91(1), 64–83 (2003)
Bradlee, D.G., Henry, R.R., Eggers, S.J.: The Marion system for retargetable instruction scheduling. SIGPLAN Not. 26(6), 229–240 (1991)
Dalsgaard, A.E., Olesen, M.C., Toft, M., Hansen, R.R., Larsen, K.G.: METAMOC: modular execution time analysis using model checking. In: Lisper, B. (ed.) 10th International Workshop on Worst-Case Execution Time Analysis (WCET 2010). OpenAccess Series in Informatics (OASIcs), vol. 15, pp. 113–123 (2010)
Dasgupta, S., Park, D., Kasampalis, T., Adve, V.S., Rosu, G.: A complete formal semantics of x86–64 user-level instruction set architecture. In: Proceedings of the 40th PLDI 2019, pp. 1133–1148 (2019)
Gordon, M.J.C.: The semantic challenge of Verilog HDL. In: Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science, San Diego, 26–29, pp. 136–145 (1995)
Große, D., Kühne, U., Drechsler, R.: HW/SW co-verification of embedded systems using bounded model checking. In: Proceedings of the 16th ACM Great Lakes Symposium on VLSI 2006, pp. 43–48 (2006)
Hahn, S., Reineke, J., Wilhelm, R.: Towards compositionality in execution time analysis: definition and challenges. SIGBED Rev. 12(1), 28–36 (2015)
Hebbache, F., Jan, M., Brandner, F., Pautet, L.: Shedding the shackles of time-division multiplexing. In: 2018 IEEE Real-Time Systems Symposium, RTSS, 2018, pp. 456–468 (2018)
Herbegue, H., Filali, M., Cassé, H.: Formal architecture specification for time analysis. In: Maehle, E., Römer, K., Karl, W., Tovar, E. (eds.) ARCS 2014. LNCS, vol. 8350, pp. 98–110. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-04891-8_9
Hoover, S.F.: Timing-abstract circuit design in transaction-level Verilog. In: 2017 IEEE International Conference on Computer Design (ICCD), pp. 525–532, November 2017
Huang, B., Zhang, H., Subramanyan, P., Vizel, Y., Gupta, A., Malik, S.: Instruction-level abstraction (ILA): a uniform specification for system-on-chip (SOC) verification. ACM Trans. Design Autom. Electr. Syst. 24(1), 10:1–10:24 (2019)
Kern, C., Greenstreet, M.: Formal verification in hardware design: a survey. ACM Trans. Des. Autom. Electron. Syst. 4 (2002). https://doi.org/10.1145/307988.307989
Kurshan, R.P., Levin, V., Minea, M., Peled, D.A., Yenigün, H.: Combining software and hardware verification techniques. Formal Methods Syst. Des. 21(3), 251–280 (2002)
Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
Leupers, R., Marwedel, P.: A BDD-based frontend for retargetable compilers. In: Proceedings the European Design and Test Conference, ED TC 1995, pp. 239–243, March 1995
Li, H., Puaut, I., Rohou, E.: Tracing flow information for tighter WCET estimation: application to vectorization. In: 21st IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, RTCSA 2015, Hong Kong, China, 19–21 August 2015, pp. 217–226 (2015)
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). https://doi.org/10.1007/978-3-642-12029-9_18
Li, X., Roychoudhury, A., Mitra, T., Mishra, P., Cheng, X.: A retargetable software timing analyzer using architecture description language. In: 2007 Asia and South Pacific Design Automation Conference, pp. 396–401, January 2007
Li, X., Roychoudhury, A., Mitra, T.: Modeling out-of-order processors for WCET analysis. Real-Time Syst. 34(3), 195–227 (2006)
Liu, I., et al.: A PRET microarchitecture implementation with repeatable timing and competitive performance. In: 2012 IEEE 30th International Conference on Computer Design (ICCD), pp. 87–93. IEEE (2012)
Meredith, P.O., Katelman, M., Meseguer, J., Rosu, G.: A formal executable semantics of Verilog. In: 8th ACM/IEEE MEMOCODE 2010, Grenoble, France, pp. 179–188 (2010)
Mishra, P., Dutt, N. (eds.): Processor Description Languages, Application and Methodologies. Systems on Silicon, vol. 1. Morgan Kaufman, Burlington (2008)
Monniaux, D.: Verification of device drivers and intelligent controllers: a case study. In: Proceedings of the 7th ACM & IEEE International Conference on Embedded software, EMSOFT 2007, pp. 30–36 (2007)
Mukherjee, R., Purandare, M., Polig, R., Kroening, D.: Formal techniques for effective co-verification of hardware/software co-designs. In: Proceedings of the 54th Annual Design Automation Conference, DAC 2017, pp. 35:1–35:6 (2017)
Pees, S., Hoffmann, A., Zivojnovic, V., Meyr, H.: Lisa-machine description language for cycle-accurate models of programmable DSP architectures. In: Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361), pp. 933–938, June 1999
Pister, M.: Timing model derivation: pipeline analyzer generation from hardware description languages. Ph.D. thesis, Saarland University (2012)
Rau, B.R., Kathail, V., Aditya, S.: Machine-description driven compilers for EPIC and VLIW processors. Des. Autom. Embed. Syst. 4(2), 71–118 (1999)
Raymond, P., Maiza, C., Parent-Vigouroux, C., Carrier, F., Asavoae, M.: Timing analysis enhancement for synchronous program. Real-Time Syst. 51(2), 192–220 (2015)
Reineke, J., et al.: A definition and classification of timing anomalies. In: 6th International Workshop on Worst-Case Execution Time (WCET) Analysis (2006)
Schlickling, M.: Timing model derivation: static analysis of hardware description languages. Ph.D. thesis, Saarland University (2013)
Schoeberl, M.: Lipsi: probably the smallest processor in the world. In: Berekovic, M., Buchty, R., Hamann, H., Koch, D., Pionteck, T. (eds.) ARCS 2018. LNCS, vol. 10793, pp. 18–30. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-77610-1_2
Schoeberl, M., Puffitsch, W., Hepp, S., Huber, B., Prokesch, D.: Patmos: a time-predictable microprocessor. Real-Time Syst. 54(2), 389–423 (2018). https://doi.org/10.1007/s11241-018-9300-4
Thiele, L., Wilhelm, R.: Design for timing predictability. Real-Time Syst. 28(2–3), 157–177 (2004)
Wilhelm, R.: Formal analysis of processor timing models. In: Graf, S., Mounier, L. (eds.) SPIN 2004. LNCS, vol. 2989, pp. 1–4. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24732-6_1
Wilhelm, R., et al.: The worst-case execution-time problem - overview of methods and survey of tools. ACM Trans. Embedded Comput. Syst. 7(3), 36:1–36:53 (2008)
Wilson, S.: Verilator 4.0 - open simulation goes multithreaded. In: The Open Source Digital Design Conference (ORConf), September 2018
Yu, Y., Manolios, P., Lamport, L.: Model checking TLA\(^{+}\) specifications. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 54–66. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48153-2_6
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Asavoae, M., Haur, I., Jan, M., Ben Hedia, B., Schoeberl, M. (2020). Towards Formal Co-validation of Hardware and Software Timing Models of CPSs. In: Chamberlain, R., Edin Grimheden, M., Taha, W. (eds) Cyber Physical Systems. Model-Based Design. CyPhy WESE 2019 2019. Lecture Notes in Computer Science(), vol 11971. Springer, Cham. https://doi.org/10.1007/978-3-030-41131-2_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-41131-2_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-41130-5
Online ISBN: 978-3-030-41131-2
eBook Packages: Computer ScienceComputer Science (R0)