New Schizophrenia Patterns on Esterel caused by Control/Data Signals

제어 및 데이터 신호에 의한 Esterel에서의 새로운 회로 중복사용 문제

  • Received : 2009.11.09
  • Accepted : 2010.02.09
  • Published : 2010.04.15

Abstract

Esterel is an imperative synchronous language that is used to develop memories, cache controllers, bus interfaces, and so on. An Esterel statement is called schizophrenic if it is executed more than once in an instant. A schizophrenic statement may cause problems when it is translated to hardware circuits; a circuit performs more than one reaction in a clock. Previous works claim that only local signal declarations and parallel statements may cause schizophrenic problems. However, control signals produced by a trap statement or data signals used by emit statements can cause schizophrenia. They are new schizophrenic patterns. Especially, schizophrenic problems caused by emit statements cannot be solved by a loop unrolling technique that is the key idea of previous curing techniques for schizophrenic problems. In this paper, we introduce and define the two schizophrenic problems.

Esterel은 명령형 동기언어로서, 많은 경우에 메모리, 캐쉬 컨트롤러, 버스 인터페이스 등을 개발하는데 사용하고 있다. Esterel 프로그램은 특정 상황에서 한 문장이 한 단위시간 안에 2번 이상 수행될 수 있다. 이러한 문장을 하드웨어로 컴파일 할 경우, 하나의 회로(circuit)가 한 클럭 안에 2번 수행되어 정상적으로 동작하지 않을 수 있다. 이러한 문제를 회로 중복사용(schizophrenia) 문제라고 부른다. 기존연구에서는 지역신호선언문과 병렬문만이 회로 중복사용 문제를 유발할 수 있다고 보았다. 하지만, 예외선언문에 의해 생성되는 제어 신호와 출력문이 만들어내는 데이터 신호도 회로 중복사용 문제를 유발할 수 있다. 특히, 출력문의 경우에는 기존 회로 중복사용 문제에 대한 해결책들의 출발점인 단순한 루프 펼치기(loop unrolling)로는 해결되지 않았다. 본 논문에서는 예외선언문과 출력문이 만들어 내는 2가지 새로운 회로 중복사용 문제들을 열거하고 회로 중복사용 문제를 재정의 하였다.

Keywords

References

  1. N. Halbwachs, Synchronous Programming of Reactive Systems, Kluwer Academic Publishers, 1993.
  2. A. Benveniste, P. Caspi, S. A. Edwards, N. Halbwachs, P. Le Guernic, and R. de Simone, "The synchronous languages 12 years later," Proceedings of the IEEE Embedded Systems, vol.91(1), pp.64-83, 2003.
  3. G. Berry, The Constructive Semantics of Pure Esterel. Draft book available at http://www.inria.fr/meije/esterel/esterel-eng.html, 1999.
  4. D. Potop-Butucaru, S. A. Edwards, and G. Berry. Compiling Esterel, Springer, 2007.
  5. Esterel Technologies, The Esterel v7 Reference Manual Version v7.30. initial IEEE standardization proposal, Esterel Technologies, 679 av. Dr. J. Lefebvre 06270 VilleneuveLoubet, France, November 2005.
  6. O. Tardieu, "A deterministic logical semantics for pure Esterel," ACM Transactions on Programming Languages and Systems, vol.29(2), pp.1-24, 2007. https://doi.org/10.1145/1180475.1180476
  7. O. Tardieu and R. de Simone, "Loops in Esterel," Transactions on Embedded Computing Systems, vol.4, no.4, pp.708-750, 2005. https://doi.org/10.1145/1113830.1113832
  8. K. Schneider, J. Brandt, and T. Schuele, "A verified compiler for synchronous programs with local declarations," Electronic Notes in Theoretical Computer Science, vol.153, no.4, pp.71-97, 2006. https://doi.org/10.1016/j.entcs.2006.02.028
  9. G. Berry, "Circuit design and verification with Esterel v7 and Esterel Studio," IEEE International High-Level Design, Validation, and Test Workshop, pp.133-136, 2007.
  10. J. Yun, C. Kim, S. Seo, T. Han, and K. Choe, "Refining schizophrenia via graph reachability in Esterel," 7th ACM-IEEE International Conference on Formal Methods and Models for Codesign, 2009.
  11. C. Kim, J. Yun, S. Seo, K. Choe, and T. Han, "Efficient construction of over-approximated CFG on Esterel," Journal of KIISE: Computing Practices and Letters, vol.15(11), pp.876-880, 2009. (in Korean)