하드웨어/소프트웨어 동시검증을 위한 합성 가능한 인터페이스 검증 기법

Synthesizable Interface Verification for Hardware/Software Co-verification

  • 투고 : 2008.04.22
  • 심사 : 2009.09.25
  • 발행 : 2010.04.15

초록

임베디드 시스템은 오늘날 우리 일상에서 널리 사용되고 있고 그 중요성은 더욱 증대되고 있다. 이에 비례하여 임베디드 시스템의 복잡도와 이를 개발하려는 노력 또한 더욱 더 증가하고 있다. 하드웨어와 소프트웨어로 구성되어 있는 임베디드 시스템의 이질적인 특성은 시스템 개발 및 통합 시에 에러를 야기하는 주원인이 된다. 그 중에서도, 하드웨어와 소프트웨어 간의 인터페이스에서 발생하는 에러가 시스템 에러의 13%를 차지하고 있으며 이 비율은 더욱 증가하는 추세이다. 우리는 하드웨어와 소프트웨어 동시설계를 위한 실제적인 인터페이스 동시 검증 기법을 제안하고 이를 지원하는 도구를 구현하였다. 먼저, 이 논문은 하드웨어와 소프트웨어간의 상호작용을 기술할 수 있는 인터페이스 명세를 정의한다. 이 명세 방법은 하드웨어와 소프트웨어 서로간의 특성을 잘 표현할 수 있고, 소프트웨어 명세로부터 하드웨어 명세로의 변환이 가능하여 전체 시스템이 소프트웨어의 입장에서 기술될 수 있도록 한다. 둘째, 작성된 하드웨어 설계와 소프트웨어 설계에 대해 명시된 인터페이스의 의미대로 동작하는지를 검증하는 기법을 제시한다. 주어진 명세로부터 소프트웨어의 동작을 가정하고 이를 하드웨어 설계로 모델링하여 하드웨어 인터페이스에 대한 모델검증을 수행하고, 그 후 소프트웨어의 동작에 대해 검증을 수행하는 가정-보증 추론(assume-guarantee reasoning) 방식의 검증을 수행한다. 마지막으로 기존의 검증 연구들이 저수준의 인터페이스를 추상화하여 현실적 적용이 힘들었던 반면 우리는 디바이스 API, 디바이스 드라이버, 디바이스 컨트롤러 등의 저수준의 인터페이스 코드들을 자동으로 생성하여 검증된 하드웨어와 소프트웨어 코드가 바로 통합되어 시스템을 구축할 수 있는 실제적인 해결책을 제시한다.

The complexity of embedded systems and the effort to develop them has been rising in proportion with their importance. Also, the heterogeneity of the hardware and software parts in embedded systems makes it more challenging to develop. Errors caused by hardware/software interfaces, especially, account for up to 13 percent of failures with an increasing trend. Therefore, verifying the interface between hardware and software in embedded system is one of the most important research areas. However, current approaches such as co-simulation method and model checking have explicit limitations. In this paper, we propose the synthesizable interface co-verification framework for hardware/software co-design. Firstly, we introduce the separate interface specifications for the heterogeneous components to describe hardware design and software design. Our specifications are expressive enough to describe both. We also provide the transformation rules from the software specification to the hardware specification so that the whole system can be described from the software view. Secondly, we address the solution of verifying the interface of the software and hardware design by adopting and extending existing verification-techniques and extending them. In hardware interface verification, we exploit the model checking technique and provide more efficient verification by closing the hardware design from the assumption of the software behavior which is ensured by software verification step. Lastly, we generate the interface codes such as device APIs, device driver, and device controller from the specification so that verified hardware and software codes can be synthesized without extra efforts.

키워드

과제정보

연구 과제 주관 기관 : 지식경제부, 정보통신산업진흥원, 한국학술진흥재단

참고문헌

  1. E.A. Lee, "What's ahead for embedded software?" IEEE Computer, vol.33, Issue.9, pp.18-26, Sep. 2000.
  2. A.A. Jerraya and W.Wolf, "Hardware/software interface codesign for embedded systems," IEEE Computer, pp.63-69. Feb. 2005.
  3. Daniel GroBe, Ulrich K¨uhne, and Rolf Drechsler, "HW/SW co-verification of embedded systems using bounded model checking," GLSVLSI '06: Proceedings of the 16th ACM Great Lakes symposium on VLSI, pp.43-48, 2006.
  4. J. Buck, S. Ha, E. Lee, and D. Messerschmitt, "Ptolemy: A Framework for Simulating and Prototyping Heterogeneous Systems," International Journal in Computer Simulation, vol.4, no.2, pp.155-182. 1994.
  5. F. Balarin, M. Chiodo, P. Giusto, H. Hsieh, A, Jurecska, L. Lavagno, C. Passerone, A. Sangiovanni- Vincentelli, E. Sentovich, K. Suzuki, and B. Tabbara, Hardware-Software Co-Design of Embedded Systems: The Polis Approach. Kluwer Academic Press. 1997.
  6. Synopsys Inc., Eaglei, http://www.synopsys.com/products.
  7. Mentor Graphics Inc., Seamless CVE. http://www.mentor.com/seamless.
  8. L. Benini, D. Bertozzi, D. Bruni, N. Drago, F. Fummi, and M. Poncino, "SystemC Cosimulation and Emulation of Multi-Processor SoC Designs," IEEE Computer, vol.36, no.4, pp.53-59 2003. https://doi.org/10.1109/MC.2003.1193229
  9. L. Formaggio, F. Fummi, and G. Pravadelli, "A Timing-Accurate HW/SW Co-simulation of an ISS with SystemC," Proceedings of IEEE International Conference on Hardware/Software Codesign and System Synthesis, pp.152-157. 2004.
  10. Kudlugi, M. Hassoun, S. Selvidge, C. Pryor, D., "A transaction-based unified simulation/emulation architecture for functional verification," In Proceedings of Design Automation Conference, 2001.
  11. J. Hatcliff and M. Dwyer, "Using the Bandera Tool Set to Model-check Properties of Concurrent Java Software," Proceedings of CONCUR 2001 (LNCS 2154), 2001.
  12. J. Corbett, M. Dwyer, J. Hatcliff, C. Pasareanu, Robby, S. Laubach, H. Zheng, "Bandera : Extracting Finite-state Models from Java Source Code," Proceedings of the 22th ICSE, 2000.
  13. T. Ball, S. K. Rajamani, "The SLAM Project: Debugging System Software via Static Analysis," Proceedings of Principles of Programming Languages, 2002.
  14. L. de Alfaro and T.A. Henzinger, "Interface theories for component-based design, In Proc. Embedded Software, Lecture Notes in Computer Science 2211, pp.148-165. Springer-Verlag, 2001.
  15. Hyun-Goo Kang, Youil Kim, Taisook Han, and Hwansoo Han, "A Path Sensitive Type System for Resource Usage Verification of C like Languages," In the 3rd Asian Symposium on Programming Languages and Systems, November 2005.
  16. K.L. McMillan. Symbolic Model Checking. Kluwer Academic Publisher, 1993.
  17. G. Berry, M. Kishinevsky and S. Singh, "System Level Design and Verification Using a Synchronous Language," Proceedings of the 2003 IEEE/ ACM International Conference on Computer-Aided Design, p.433, November 09-13, 2003.
  18. Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1996.
  19. L. de Alfaro and T.A. Henzinger, "Interface-based design," In Engineering Theories of Softwareintensive Systems (M. Broy, J. Gruenbauer, D. Harel, and C.A.R Hoare, eds.), NATO Science Series: Mathematics, Physics, and Chemistry, vol.195, Springer, pp.83-104, 2005.
  20. O. Tkachuk, M. Dwyer, C. Pasareanu, "Automated environment generation for software model checking," In Proceedings of the 18th IEEE International Conference on Automated Software Engineering, pp.116-127, 2003.
  21. A. Bouali, "Xeve: an Esterel verification environment," Technical report, INRIA, Dec. 2000.
  22. VICODE(Verification Integrated Codesign Environment), http://plus.kaist.ac.kr/~vicode, 2008.
  23. Eclipse, http://www.eclipse.org/
  24. Hanback Electronics, http://www.hanback.co.kr/
  25. Lego Mindstorm, http://mindstorms.lego.com/