Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2013. / Made available in DSpace on 2013-12-06T00:09:49Z (GMT). No. of bitstreams: 1
317921.pdf: 2856608 bytes, checksum: 9914933b78068186dfadbbe43a9060ef (MD5)
Previous issue date: 2013 / O crescente aumento na complexidade dos sistemas embarcados está ocasionando uma migração para técnicas de projeto em níveis mais altos de abstração, o que tem levado a uma convergência entre as metodologias de desenvolvimento de hardware e software. Este trabalho tem como objetivo principal contribuir nesse cenário propondo uma estratégia de desenvolvimento unificada que possibilita a implementação de componentes em hardware e software a partir de uma única descrição na linguagem C++. As técnicas propostas se baseiam em conceitos de programação orientada a objetos (do inglês Object-oriented Programming - OOP) e programação orientada a aspectos (do inglês Aspect-oriented Programming - AOP) para guiar uma estratégia de engenharia de domínio que facilita a clara separação entre a estrutura e comportamento-base de um componente das características que são específicas de implementações em hardware ou software.Certos aspectos de um componente, como, por exemplo, alocação de recursos e a interface de comunicação, são modelados de maneiras distintas dependendo da implementação-alvo (hardware ou software). Este trabalho mostra como tais aspectos podem ser fatorados e encapsulados em programas de aspecto que são aplicados às descrições iniciais apenas quando o particionamento final entre hardware e software é definido. Os mecanismos de aplicação de aspectos são definidos via metaprogramação estática utilizando os templates do C++. Dessa forma, a extração de implementações em hardware ou software a partir de uma implementação unificada em C++ é direta e se dá através de transformações no nível da linguagem suportadas por uma grande gama de compiladores e ferramentas de síntese de alto-nível (do inglês High-level Synthesis - HLS). Para avaliar a abordagem proposta, foi desenvolvida uma plataforma flexível para implementação de System-on-Chips (SoCs) em dispositivos lógico programáveis. A infraestrutura de hardware/software desenvolvida utiliza uma arquitetura baseadas em Network-on-Chips (NoCs) para prover um mecanismo de comunicação transparente entre hardware e software. A avaliação dos mecanismos propostos foi feita através da implementação de um SoC para aplicações PABX. Os resultados mostraram que a estratégia proposta resulta em componentes flexíveis e reusáveis com uma eficiência muito próxima a de componentes implementados especificamente para software ou hardware.<br> / Abstract : The increasing complexity of current embedded systems is pushing their design
to higher levels of abstraction, leading to a convergence between hardware
and software design methodologies. In this work we aim at narrowing the gap
between hardware and software design by introducing a strategy that handles
both domains in a unified fashion.
We leverage on Aspect-oriented Programming (AOP) and Object-oriented
Programming (OOP) techniques in order to provide unified C++ descriptions
of embedded system components. Such unified descriptions can be obtained
through a careful design process focused on isolating aspects that are specific
of hardware and software scenarios. Aspects that differ significantly in each
domain, such as resource allocation and communication interface, were isolated
in aspect programs that are applied to the unified descriptions before they are
compiled to software binaries or synthesized to dedicated hardware using
High-level Synthesis (HLS) tools.
Furthermore, we propose a flexible FPGA-based SoC platform for the deployment
of SoCs in a HLS-capable environment. The proposed hardware/software
infrastructure relies on a Network-on-Chip-based architecture to provide transparent
communication mechanisms for hardware and software components.
The proposed unified design approach and its transparent communication mechanisms
are evaluated through the implementation of a SoC for digital PABX
systems. The results show that our strategy leads to reusable and flexible components
at the cost of an acceptable overhead when compared to software-only
C/C++ and hardware-only C++ implementations.
Identifer | oai:union.ndltd.org:IBICT/oai:repositorio.ufsc.br:123456789/107452 |
Date | January 2013 |
Creators | Mück, Tiago Rogério |
Contributors | Universidade Federal de Santa Catarina, Frohlich, Antonio Augusto Medeiros |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | 135 p.| il., grafs., tabs. |
Source | reponame:Repositório Institucional da UFSC, instname:Universidade Federal de Santa Catarina, instacron:UFSC |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0151 seconds