Powiadomienia systemowe
- Sesja wygasła!
Identyfikatory
Warianty tytułu
Use of OpenMP standard for embedded systems describing
Języki publikacji
Abstrakty
Artykuł prezentuje nowe podejście do projektowania systemów wbudowanych z użyciem języka C z dyrektywami OpenMP. Opisano w nim motywację użycia standardu OpenMP do syntezy sprzętowo-programowej. Przedstawiono proponowane rozwiązanie oraz porównano je z klasycznym projektowaniem systemów sprzętowych. Przedstawiono także konstrukcje równoległe standardu OpenMP, syntezowane do postaci współbieżnych układów cyfrowych. Pokazano przykładowy program w języku OpenMP wraz z jego przekładem do kodu SystemC oraz schemat RTL układu będącego wynikiem syntezy opisanego źródła.
The embedded system is a special-purpose computer that performs one or a few dedicated tasks. It contains hardware and software parts [3]. The paper presents a new approach to embedded system design using C language with OpenMP directives. It is different from classic hardware design (Fig. 1a) because it allows describing both hardware and software using a common language (Fig. 1b). OpenMP is a standard that specifies parallel programs using a shared memory architecture. It is the collection of compiler directives and runtime library functions in C/C++ and Fortran languages [11]. Support for concurrency that corresponds to hardware performance is the main motivation of using OpenMP to embedded system design. OpenMP enables describing chips on high level of abstraction without knowledge about details of its structure. It improves flexibility of the software/hardware migration. OpenMP offers simulation, verification and estimation of the system performance. There is sufficient amount of legacy C libraries which facilitate the task of system modeling. Fig. 2a shows an example of OpenMP code that adds two matrixes A and B using a parallel loop. The systemC program being the results of behavioral synthesis of the example 2a is presented in Fig. 2b. Parallel regions in OpenMP have been transformed to SC_METHODS processes in SystemC. Fig. 3 shows the RTL schematic diagram of the chip synthesized from a code 2b. It contains three blocks proc1, proc2, proc3 that are equivalent to threads in OpenMP program. A schematic diagram of the single block is presented in Fig. 4. The unit consists of an adder, a FDE flip-flop that realizes barrier synchronization and two FDR flip-flops representing signals S and R.
Wydawca
Czasopismo
Rocznik
Tom
Strony
693--695
Opis fizyczny
Bibliogr. 16 poz., rys., tab.
Twórcy
autor
- Wydział Informatyki, Zachodniopomorski Uniwersytet technologiczny, twiercinski@wi.ps.pl
Bibliografia
- [1] Stephen A. Edwards: The Challenges of Hardware Synthesis from C-like Languages, Department of Computer Science, Columbia University, New York, 2005.
- [2] Manuel Lang: SystemC for Embedded System Design, Seminar Embedded Systems (WS 06/07), Leopold-Franzens-University of Innsbruck, 2006.
- [3] Thomas A. Henzinger, Joseph Sifakis: The Embedded Systems Design Challenge, Proceedings of the 14th International Symposium on Formal Methods (FM), Lecture Notes in Computer Science 4085, Springer, 2006.
- [4] A. A. Jerraya: Long Term Trends for Embedded System Design, Proceedings of the Digital System Design, EUROMICRO Systems, IEEE Computer Society, Washington, DC, USA, 2004.
- [5] Celoxica: Handel-C Language Reference Manual, 2003.
- [6] Rainer Dömer, Andreas Gerstlauer, Daniel Gajski: SpecC Language Reference Manual. SpecC consortium, version 2.0 edition, March 2001.
- [7] D. C. Ku and G. De Micheli: HardwareC: A language for hardware design. T. R. CSTL-TR-90-419, Stanford University, CA, Aug. 1990.
- [8] Open SystemC Initiative: SystemC 2.0.1 Language Reference Manual, Revision 1.0, 2003.
- [9] David Galloway: The Transmogrifier C hardware description language and compiler for FPGAs. In Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines (FCCM), Napa, California, April 1995.
- [10] Donald Soderman, Yuri Panchul: Implementing C algorithms in reconfigurable hardware using C2Verilog. In Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines (FCCM), Los Alamitos, CA, April 1998.
- [11] OpenMP Architecture Review Board: OpenMP Application Program Interface, Version 2.5 May 2005.
- [12] Piotr Dziurzański, Włodzimierz Bielecki: Defining synthesizable OpenMP directives and clauses. In Proceedings of the International Conference on Computational Science 2004, Springer-Verlag 2004.
- [13] Piotr Dziurzański, Włodzimierz Bielecki: Generating SystemC Specifications for Loops Statements in Ansi C Code with OpenMP Directives, Proceedings of the 11th IEEE International Conference on Mixed Design of Integrated Circuits and Systems - MIXDES 2004, Szczecin, Polska, 24-26 czerwca, 2004.
- [14] Konrad Trifunović: Translacja ANSI C programów z dyrektywami OpenMP do źródeł w języku SystemC wraz z estymacją czasu wykonania, MS Thesis, Politechnika Szczecińska, Wydział Informatyki, Szczecin, 2006.
- [15] Synopsys Inc.: Describing Synthesizable RTL in SystemC, Version 1.0, May 2001.
- [16] Frank Vahid, Tony Givargis: Embedded System Design. A Unified Hardware/Software Introduction, John Wiley & Sons, Inc., 2002.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-article-BSW4-0069-0045