Ferramenta de Suporte ao Projeto Automatizado de Sistemas Computacionais Embarcados
Resumo
Sistemas embarcados são compostos de hardware e software e normalmente executam aplicações dedicadas em ambientes altamente restritivos. No projeto de sistemas embarcados temos características altamente desejáves, como o reuso de componentes, transparência arquitetural, baixo overhead, e reconfigurabilidade. O Projeto de Sistemas Orientado a Aplicação (AOSD) foi criado para tratar dessas questões, e visa guiar o desenvolvimento de sistemas embarcados que atendam exatamentente os requisitos da aplicação. Este artigo descreve uma ferramenta para configuração e geração de sistemas embarcados que está sendo utilizada no EPOS (Embedded and Parallel Operating System), um Sistema Operacional desenvolvido usando AOSD. A partir do código-fonte da aplicação a ferramenta gera o suporte computacional necessário e sufiente à execução dessa aplicação. Para ilustrar esse processo, este artigo mostra um estudo de caso descrevendo a geração de um sistema embarcado para suportar uma aplicação simples de decodificação de áudio.
Referências
Cardoso, J. and Neto, H. (1999). Macro-based hardware compilation of java bytecodes into a dynamic reconfigurable computing system. In IEEE Symposium on Field-Programmable Custom Computing Machines, pages 2 – 11, Napa Valley, CA.
D. Herrmann, J. H. and Ernst, R. (1994). An approach to the adaptation of estimated cost parameters in the cosyma system. In International Conference on Hardware Software Codesign - Proceedings of the 3rd international workshop on Hardware/software co-design, pages 100 – 107.
Danillo Santos, Rafael Cancian, R. d. M. and Fröhlich, A. A. (2006). Advantages and disadvantages of application-oriented system design in embedded systems design. In Proceedings of 4th International IEEE Conference on Industrial Informatics, pages 904 – 909, Cingapura.
et al, A. S. (2000). Optimal hardware/software partitioning for concurrent specification using dynamic programming. In Thirteenth International Conference on VLSI Design, pages 110 – 113.
et al, P. A. (2003). Hardware-software partitioning in embedded system design. In Proceedings of the IEEE International Symposium on Intelligent Signal Processing.
et al, P. E. (1997). System level hardware/software partitioning based on simulated annealing and tabu search. In Design Automation for Embedded Systems.
Fröhlich, A. A. (2001). Application-Oriented Operating Systems. PhD thesis, GMD - Forschungszentrum Informationstechnik, Sankt Augustin, Germany.
Fröhlich, A. A. and Schröder-Preikschat, W. (2000). Scenario adapters: Efficiently adapting components. In Proceedings of the 4th World Multiconference on Systemics, Cybernetics and Informatics, Orlando, USA.
G. Mcgregor, B. Einloth, F. V. and Stitt, G. (2005). Hardware/software partitioning of software binaries: a case study of h.264 decode. In Third IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, pages 285 – 290.
Galloway, D. (1995). The transmogrifier c hardware description language and compiler for fpgas. In IEEE Symposium on FPGAs for Custom Computing Machines, pages 136 – 144.
Graphics, M. Catapultc. [link].
Ku, D. and DeMicheli, G. (1990). Hardwarec – a language for hardware design (version 2.0). Technical report, Stanford, CA, USA.
Niemann, R. and Marwedel, P. (1996). An algorithm for hardware/software partitioning using mixed integer linear. In Proceedings of the ED TC.
P. Mudry, G. Z. and Tempesti, G. (2006). Hybrid genetic algorithm for constrained hardware-software partitioning. In 2nd International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities, pages 1 – 6.
Parnas, D. L. (1976). On the design and development of program families. In IEEE Transactions on Software Engineering, pages 1–9.
Polpeta, F. V. and Fröhlich, A. A. (2004). Hardware mediators: a portability artifact for component-based systems. In Proceedings of the International Conference on Embedded and Ubiquitous Computing, volume 3207 of LNCS, Aizu,Japan.
Stitt, G. and Vahid, F. (2002). Hardware/software partitioning of software binaries. In IEEE/ACM International Conference on Computer Aided Design.
Tondello, G. F. and Fröhlich, A. A. (2004). Configuration management of embedded operating systems using application-oriented system design. In Proceedings of the 5th Argentine Symposium on Computing Technology (part of the 33rd Argentine Conference on Computer Science and Operational Research), Córdoba, Argentine.
Tondello, G. F. and Fröhlich, A. A. (2005). On the automatic configuration of application-oriented operating systems. In Proceedings of the 3rd ACS/IEEE International Conference on Computer Systems and Applications, pages 120 – 123, Cairo, Egypt.
V. Srinivasan, S. R. and Vemuri, R. (1998). Hardware software partitioning with integrated hardware design space exploration. In Proceedings of Design, Automation and Test in Europe, pages 28 – 35.
