41 |
LALP+ : um framework para o desenvolvimento de aceleradores de hardware em FPGAs / LALP+ : a framework for developing FPGA-based hardware acceleratorsOliveira, Cristiano Bacelar de 21 December 2015 (has links)
Considerando a crescente demanda por desempenho em sistemas computacionais, a implementação de algoritmos diretamente em hardware com o uso de FPGAs (Field-programmable Gate Arrays) é uma alternativa que tem apresentado bons resultados. Porém, os desafios de programação envolvidos no uso de FPGAs, de tal forma a explorar eficientemente seus recursos, limita o número de desenvolvedores em função da predominância do paradigma de programação tradicionalmente sequencial, imposto pelas linguagens imperativas. Assim, este trabalho busca desenvolver mecanismos que facilitem o desenvolvimento com FPGAs, otimizando o uso de memória e explorando o paralelismo das operações. Este documento apresenta a tese de doutorado de título LALP+ : um framework para o desenvolvimento de aceleradores de hardware em FPGAs. Dado que a latência para leitura e escrita de dados têm sido um gargalo para algumas aplicações de alto desempenho, este trabalho trata do desenvolvimento de técnicas para geração de arquiteturas de hardware, considerando aspectos relativos ao mapeamento, gerenciamento e acesso à memória em arquiteturas reconfiguráveis. Para isto, o projeto desenvolvido utiliza como base a linguagem LALP, cujo foco é o tratamento de loops com a técnica de loop pipelining. As técnicas descritas nesta tese são empregadas no desenvolvimento do framework LALP+, o qual estende LALP com a implementação de novas características e funcionalidades, de forma a contribuir para o aumento do seu nível de abstração. As arquiteturas criadas utilizando LALP+ foram comparadas às geradas por ferramentas comerciais e acadêmicas, tendo apresentado, em média, um melhor desempenho, com redução do tempo de execução de 10;01, no melhor caso. Espera-se, por meio das contribuições aqui apresentadas, facilitar a implementação de produtos e projetos relacionados a aplicações de computação de alto desempenho que envolvam o uso de arquiteturas reconfiguráveis, promovendo uma maior absorção desta tecnologia. / Considering the demand for high-performance in computer systems, the implementation of algorithms directly in hardware by using FPGAs (Field-programmable Gate Arrays) is an alternative that has shown good results. However, the number of developers is limited due to the challenges faced for efficiently programming FPGAs. In addition to that, developers are more used to the traditional sequential programming paradigm imposed by the imperative languages. This work seeks to develop mechanisms to facilitate the development with FPGAs, by optimizing memory usage and exploiting the parallelism of operations inside a loop. This document presents the doctoral thesis entitled LALP+ : a framework for developing FPGA-based hardware accelerators. Since the latency for reading and writing data have been a bottleneck for high performance applications, this work deals with the development of techniques for generation of hardware architectures, considering aspects related to mapping, management and memory access in reconfigurable architectures, using as basis the LALP language, which focuses on the treatment of loops with the technique of loop pipelining. The techniques described in this thesis are employed in the development of the LALP+ framework, which extends LALP by implementing new features and functionalities, in order to contribute to increase its abstraction level. LALP+ architectures were compared to ones generated by using academical and commercial tools, having presented, on average, better performance, with a execution time speedup of 10;01 for the best case. Thus, it is expected that the hereby presented contributions facilitate the implementation of products and projects related to high-performance computing applications with reconfigurable architectures, contributing for the use of such technology.
|
42 |
Filtragem de Kalman não linear com redes neurais embarcada em uma arquitetura reconfigurável para uso na tomografia de Raios-X para amostras da física de solos / Nonlinear Kalman filtering with neural network embedded in a reconfigurable architecture for use in X-ray tomography for samples of soil physicsLaia, Marcos Antonio de Matos 06 June 2013 (has links)
Estudar as propriedades físicas do solo envolve conhecer a umidade, o transporte de água e solutos, a densidade, a identificação da porosidade, o que é essencial para o crescimento de raízes das plantas. Para esses estudos, a tomografia de raios X tem se mostrado uma técnica útil. As imagens tomográficas são obtidas através de projeções (sinais) que são reconstruídos com algoritmos adequados. No processo de aquisição dessas projeções, podem surgir ruídos provenientes de diferentes fontes. O sinal tomográfico apresenta ruídos que possuem uma distribuição de Poisson gerada pela contagem de fótons, bem como o detector de fótons é influenciado por uma presença de ruído eletrônico com uma distribuição Gaussiana. Essas diferentes distribuições podem ser mapeadas com transformadas não lineares específicas que alteram uma distribuição Gaussiana para outros tipos de distribuições, como a de transformada de Anscombe (Poisson) ou transformada de Box-Muller (Uniforme), mas são aproximações que apresentam erros acumulativos. As transformadas podem ser então mapeadas por um sistema de redes neurais, o que garante um melhor resultado com o filtro de Kalman não linear em que os pesos da rede e as medidas das projeções são estimados em conjunto. Este trabalho apresenta uma nova solução com filtragem de Kalman descentralizada utilizando redes neurais artificiais embarcada em uma arquitetura reconfigurável com o intuito de obter se um valor ótimo de melhoria na relação Sinal/Ruído de projeções tomográficas e consequentemente nas imagens reconstruídas proporcionando melhorias para os métodos de análise dos físicos de solos agrícolas. / To study the physical properties of soil moisture involves knowing the transport of water and solutes, density, porosity identification, which is essential for the growth of plant roots. For these studies, X-ray tomography has been shown to be a useful technique. The tomographic images are obtained through projections (signals) that are reconstructed with appropriate algorithms. In the process of acquiring these projections, noise can arise from different sources. The tomographic signal is noisy which have a Poisson distribution generated by photon counting, and the photon detector is influenced by a presence of electronic noise with a Gaussian distribution. These different distributions can be mapped to specific nonlinear transformed altering a Gaussian distribution for other types of distributions, such as the Anscombe transform (Poisson) or Box-Muller transform (Uniform), but are approximations that have cumulative errors. Transforms can then be mapped by a neural network system, which ensures a better result with nonlinear Kalman filter in which the network weights and measures of the projections are estimated together. This work presents a new solution to the unscented Kalman filtering using artificial neural networks embedded in a reconfigurable architecture in order to obtain an optimum value of improvement in S/N ratio of tomographic projections and consequently the images reconstructed by providing improvements for the methods of physical parameters of the agricultural soils.
|
43 |
ChipCFlow - Partição e protocolo de comunicação no grafo a fluxo de dados dinâmico / ChipCFlow - partioning and communication protocol in the dynamic dataflow graphSanches, Lucas Barbosa 14 May 2010 (has links)
Este trabalho descreve a prova de conceito de uma abordagem que utiliza o modelo de computação a fluxo de dados, inerentemente paralelo, associado ao modelo de computação reconfigurável parcial e dinamicamente, visando à obtenção de sistemas computacionais de alto desempenho. Mais especificamente, trata da obtenção de um modelo para o particionamento dos grafos a fluxo de dados dinâmicos e de um protocolo de comunicação entre suas partes, a fim de permitir a sua implementação em arquiteturas dinamicamente reconfiguráveis, em especial em FGPAs Virtex da Xilinx. Enquadra-se no contexto do projeto ChipCFlow, de escopo mais amplo, que pretende obter uma ferramenta para geração automática de descrição de hardware sintetizável, a partir de código em alto nível, escrito em linguagem C, fazendo uso da abordagem a fluxo de dados para extrair o paralelismo implícito nas aplicações originais. O modelo proposto é aplicado em um grafo a fluxo de dados dinâmico, e através de simulações sua viabilidade é discutida / This work describes the concept of an approach that uses data ow computational model, inherently parallel, associated with de reconfigurable computing model, partial and dynamic, in order to obtain high performance computational systems. More specifically, it is about a model to the partitioning and communication between partitioned sectors of a CDFG (Control Data Flow Graph) in order to map these graphs on a partial reconfiguration FPGA fabric, in special Virtex II/II-Pro from Xilinx. It is part of the ChipCFlow project, that has a bigger scope, and that aims to automatically obtain syntetisable hardware descriptions, from high level code written in C and, by using a data flow approach to extract implicit parallelism in original applications. The model obtained is extensively explained and applied to an example of CDFG, where by means of simulations its feasibility is discussed
|
44 |
Projeto de uma VPN(Rede Privada Virtual) baseada em computação reconfigurável e aplicada a robôs móveis / A VPN (Virtual Private Network) design based on reconfigurable computing and applied to mobile robotsMarleta, Marcelo Honorato 11 April 2007 (has links)
Este trabalho apresenta uma implementação de VPN utilizando-se dos circuitos reprogramáveis do tipo FPGA (Field Programmable Gate Array) que são a base da computação reconfigurável. VPNs utilizam criptografia para permitir que a comunicação seja privada entre as partes. Assim, todo o custo computacional decorrente desta prática é executado em nível de hardware, procurando-se atingir um alto desempenho e voltado para as aplicações de sistemas embutidos. O uso desta solução, VPN por hardware, será na interligação de um robô (em desenvolvimento no Laboratório de Computação Reconfigurável - LCR do Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo) ao seu servidor de configuração e tarefas, através de linhas privadas. O emprego de uma VPN em robótica permitirá a utilização de um sistema de comunicação, com ou sem fio, e toda a infra-estrutura da Internet para a comunicação com o robô (e no futuro entre os robôs) a qualquer distância de forma segura e confiável. O hardware reconfigurável utilizado para a VPN deste trabalho proporciona flexibilidade no modo de implementação, possibilitando que o sistema seja adequado para satisfazer situações que exijam alto desempenho. Além disso, a arquitetura proposta possibilita que parte das operações sejam executadas em software (no caso, foi utilizado o sistema operacional ?Clinux e ferramentas para se estabelecer a VPN) e parte das operações executadas em hardware (um coprocessador criptográfico AES). As principais ferramentas de software são o conjunto ipsec-tools que foram desenvolvidas para serem executadas com o IPSec nativo do Kernel e devidamente portadas para o ?Clinux / This work designs a system that implements a VPN using FPGA (Field Programmable Gate Array) reprogrammable circuits, which are the basis of reconfigurable computing. VPNs use cryptography to allow private communication between parts. In this manner, the computational cost of the cryptography is handled by the hardware, achieving great performance and allowing its usage on embedded systems applications. The system proposed in this thesis has been used to establish secure communication between a PC and a mobile robot (that is in development at Reconfigurable Computing Laboratory - LCR of Institute of Mathematics and Computer Science of Univesity of São Paulo). The use of VPN in robotics will allow a communication, either wired or wireless, using Internet?s infrastructure with the robot (and in the future among robots), in a secure and trustable manner. The reconfigurable hardware used in this work allows flexibility in the implementation, making possible its usage in situations that requires high performance. Furthermore, the proposed architecture allows part of applications executing in software (using ?Clinux operating system and tools to establish the VPN) and other parts in hardware (a cryptographic coprocessor AES). The main software tools are the ipsec-tools that were developed to execute with native Kernel IPSec?s implementation and were properly ported to ?Clinux
|
45 |
Implementação de um sistema de arquivos para uma plataforma de computação reconfigurável / A file system implementation for a reconfigurable computing platformSanches, Adriano Kaminski 20 September 2006 (has links)
Em um sistema computacional, os dados são armazenados na unidade de armazenamento, segundo alguma lógica, em estruturas denominadas arquivos. O Sistema de Arquivos é o responsável por estruturar, identificar, acessar, proteger e gerenciar esses arquivos, além de agir como um elo de ligação entre o usuário e o dispositivo, traduzindo comandos de alta abstração (oriundos do usuário) em comandos de baixo nível, compreensível a unidade de armazenamento. O presente trabalho visa a implementação de um sistema de arquivos para aplicação em dispositivos móveis baseado em computação reconfigurável. Tal sistema servirá de suporte para as aplicações que necessitem armazenar e/ou restaurar grande volume de dados, como a aquisição de imagens digitalizadas de câmeras CMOS. Este sistema também será utilizado como uma ferramenta inicial para o desenvolvimento de um módulo de armazenamento em uma placa baseada em computação reconfigurável a ser utilizada para fins didáticos. O sistema de arquivos implementado foi a FAT16 e o dispositivo de armazenamento de massa utilizado foram os cartões de memória SD-Secure Digital e MMC-MultiMediaCard / In computational systems, usually the data are stored in storage units, according to some logic, in structures called files. The File System is responsible for structure, identification, access, protection and management of the files. It also acts as a connector link between the user and the device, translating high level commands (derived for the user) into commands of low level, understandable for the storage unit. The present work aims to implement a File System for application in mobile devices based on reconfigurable computation. Such system will act as a support for the applications that need to store and/or to restore large volume of data, such as the acquisition of digital images from CMOS cameras. This system will also be used as an initial tool for the development of a storage module of a board, based on reconfigurable computation, to be used for didactic purposes. The implemented File System is based on FAT16 and the storage device used was the memory cards SD (Secure Digital) and MMC (MultiMedia- Card)
|
46 |
P2l - Uma ferramenta de profiling a nível de instrução para o processador softcore LEON3 / P2L - A instruction level profiling tool for LEON3 softcoreAlmeida Júnior, Carlos Roberto Pereira 20 May 2016 (has links)
A maioria dos sistemas embarcados hoje desenvolvidos utilizam complexos sistemas eletrônicos integrados em um único chip, os Systems-on-a-Chip (SoC). A análise do comportamento de uma aplicação em execução, ou seja, o profiling nesses sistemas não é uma tarefa trivial em virtude da complexidade dos SoCs e pela restrição de ferramentas de profiling adequadas. Neste contexto, este trabalho apresenta o P2L, uma ferramenta de profiling que se baseia em métricas de nível de instrução e função para o processador LEON3. O P2L fornece estatísticas detalhadas de uso do processador, memórias e barramento de programas em execução sem uso de instrumentação. A ferramenta é composta por um componente em hardware e drivers e aplicativos em software. Os resultados mostram que o P2L fornece medidas com erro inferior a 1% e overhead desprezível quando comparado ao tempo de execução nativa do programa e ao do profiler GNU gprof. / Most embedded systems developed today use complex electronic systems integrated into a single chip, the Systems-on-a-Chip (SoC). The analysis of the behavior of a running application or profiling in these systems is not a trivial task due to the complexity of the SoC and the restriction of appropriate profiling tools. In this context, this work presents P2L - a profiling tool that is based on instruction and function level metrics for the LEON3 processor. P2L provides detailed usage statistics of the processor, memories, and bus of running programs without the use of instrumentation. The tool consists of a component in hardware, drivers and applications software. The results show that P2L provides measures with an error less than 1% and negligible overhead compared to native runtime program and the GNU profiler gprof.
|
47 |
Otimização de memória cache em tempo de execução para o processador embarcado LEON3 / Optimization of cache memory at runtime for embedded processor LEON3Cuminato, Lucas Albers 28 April 2014 (has links)
O consumo de energia é uma das questões mais importantes em sistemas embarcados. Estudos demonstram que neste tipo de sistema a cache é responsável por consumir a maior parte da energia fornecida ao processador. Na maioria dos processadores embarcados, os parâmetros de configuração da cache são fixos e não permitem mudanças após sua fabricação/síntese. Entretanto, este não é o cenário ideal, pois a configuração da cache pode não ser adequada para uma determinada aplicação, tendo como consequência menor desempenho na execução e consumo excessivo de energia. Neste contexto, este trabalho apresenta uma implementação em hardware, utilizando computação reconfigurável, capaz de reconfigurar automática, dinâmica e transparentemente a quantidade de ways e por consequência o tamanho da cache de dados do processador embarcado LEON3, de forma que a cache se adeque à aplicação em tempo de execução. Com esta técnica, espera-se melhorar o desempenho das aplicações e reduzir o consumo de energia do sistema. Os resultados dos experimentos demonstram que é possível reduzir em até 5% o consumo de energia das aplicações com degradação de apenas 0.1% de desempenho / Energy consumption is one of the most important issues in embedded systems. Studies have shown that in this type of system the cache consumes most of the power supplied to the processor. In most embedded processors, the cache configuration parameters are fixed and do not allow changes after manufacture/synthesis. However, this is not the ideal scenario, since the configuration of the cache may not be suitable for a particular application, resulting in lower performance and excessive energy consumption. In this context, this project proposes a hardware implementation, using reconfigurable computing, able to reconfigure the parameters of the LEON3 processor\'s cache in run-time improving applications performance and reducing the power consumption of the system. The result of the experiment shows it is possible to reduce the processor\'s power consumption up to 5% with only 0.1% degradation in performance
|
48 |
"Implementação do barramento on-chip AMBA baseada em computação reconfigurável" / Implementation of on-chip AMBA bus based on Reconfigurable ComputingQueiroz, Daniel Cruz de 04 February 2005 (has links)
A computação reconfigurável está se fortalecendo cada vez mais devido ao grande avanço dos dispositivos reprogramáveis e ferramentas de projeto de hardware utilizadas atualmente. Isso possibilita que o desenvolvimento de hardware torne-se bem menos trabalhoso e complicado, facilitando assim a vida do desenvolvedor. A tecnologia utilizada atualmente em projetos de computação reconfigurável é denominada FPGA (Field Programmable Gate Array), que une algumas características tanto de software (flexibilidade), como de hardware (desempenho). Isso fornece um ambiente bastante propício para desenvolvimento de aplicações que precisam de um bom desempenho, sem que estas devam possuir uma configuração definitiva. O objetivo deste trabalho foi implementar um barramento eficiente para possibilitar a comunicação entre diferentes CORES de um robô reconfigurável, que podem estar dispersos em diferentes dispositivos FPGAs. Tal barramento seguirá o padrão AMBA (Advanced Microcontroller Bus Architecture), pertencente à ARM. Todo o desenvolvimento do core completo do AMBA foi realizado utilizando-se a linguagem VHDL (Very High Speed Integrated Circuit Hardware Description Language) e ferramentas EDAs (Electronic Design Automation) apropriadas. É importante notar que, embora o barramento tenha sido projetado para ser utilizado em um robô, o mesmo pode ser usado em qualquer sistema on-chip. / The reconfigurable computing is each time more fortified, what leads to a great advance of reprogrammable devices and hardware design tools. This has become hardware development less laborious and complicated, thus, facilitating the life of the designer. The technology currently used in projects of reconfigurable computing is called FPGA (Field Programmable Gate Array), which combines some characteristics of software (flexibility) and hardware (performance). This technology provides a propitious environment to the development of applications that need a good performance. Those that dont need a definitive configuration. The purpose of this work was to implement an efficient bus to make possible the communication among different modules of a reconfigurable robot. This bus is based on a bus standard called AMBA (Advanced Microcontroller Bus Architecture), which belongs to ARM. All the development of full AMBA core was carried through using VHDL (Very High Speed Integrated Circuit the Hardware Description Language) language and appropriated EDA (Electronic Design Automation) tools. It is important to notice that, even so the bus have been projected to be used in a robot, it could be used in any system on-chip.
|
49 |
Projeto de uma VPN(Rede Privada Virtual) baseada em computação reconfigurável e aplicada a robôs móveis / A VPN (Virtual Private Network) design based on reconfigurable computing and applied to mobile robotsMarcelo Honorato Marleta 11 April 2007 (has links)
Este trabalho apresenta uma implementação de VPN utilizando-se dos circuitos reprogramáveis do tipo FPGA (Field Programmable Gate Array) que são a base da computação reconfigurável. VPNs utilizam criptografia para permitir que a comunicação seja privada entre as partes. Assim, todo o custo computacional decorrente desta prática é executado em nível de hardware, procurando-se atingir um alto desempenho e voltado para as aplicações de sistemas embutidos. O uso desta solução, VPN por hardware, será na interligação de um robô (em desenvolvimento no Laboratório de Computação Reconfigurável - LCR do Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo) ao seu servidor de configuração e tarefas, através de linhas privadas. O emprego de uma VPN em robótica permitirá a utilização de um sistema de comunicação, com ou sem fio, e toda a infra-estrutura da Internet para a comunicação com o robô (e no futuro entre os robôs) a qualquer distância de forma segura e confiável. O hardware reconfigurável utilizado para a VPN deste trabalho proporciona flexibilidade no modo de implementação, possibilitando que o sistema seja adequado para satisfazer situações que exijam alto desempenho. Além disso, a arquitetura proposta possibilita que parte das operações sejam executadas em software (no caso, foi utilizado o sistema operacional ?Clinux e ferramentas para se estabelecer a VPN) e parte das operações executadas em hardware (um coprocessador criptográfico AES). As principais ferramentas de software são o conjunto ipsec-tools que foram desenvolvidas para serem executadas com o IPSec nativo do Kernel e devidamente portadas para o ?Clinux / This work designs a system that implements a VPN using FPGA (Field Programmable Gate Array) reprogrammable circuits, which are the basis of reconfigurable computing. VPNs use cryptography to allow private communication between parts. In this manner, the computational cost of the cryptography is handled by the hardware, achieving great performance and allowing its usage on embedded systems applications. The system proposed in this thesis has been used to establish secure communication between a PC and a mobile robot (that is in development at Reconfigurable Computing Laboratory - LCR of Institute of Mathematics and Computer Science of Univesity of São Paulo). The use of VPN in robotics will allow a communication, either wired or wireless, using Internet?s infrastructure with the robot (and in the future among robots), in a secure and trustable manner. The reconfigurable hardware used in this work allows flexibility in the implementation, making possible its usage in situations that requires high performance. Furthermore, the proposed architecture allows part of applications executing in software (using ?Clinux operating system and tools to establish the VPN) and other parts in hardware (a cryptographic coprocessor AES). The main software tools are the ipsec-tools that were developed to execute with native Kernel IPSec?s implementation and were properly ported to ?Clinux
|
50 |
Implementação de um sistema de arquivos para uma plataforma de computação reconfigurável / A file system implementation for a reconfigurable computing platformAdriano Kaminski Sanches 20 September 2006 (has links)
Em um sistema computacional, os dados são armazenados na unidade de armazenamento, segundo alguma lógica, em estruturas denominadas arquivos. O Sistema de Arquivos é o responsável por estruturar, identificar, acessar, proteger e gerenciar esses arquivos, além de agir como um elo de ligação entre o usuário e o dispositivo, traduzindo comandos de alta abstração (oriundos do usuário) em comandos de baixo nível, compreensível a unidade de armazenamento. O presente trabalho visa a implementação de um sistema de arquivos para aplicação em dispositivos móveis baseado em computação reconfigurável. Tal sistema servirá de suporte para as aplicações que necessitem armazenar e/ou restaurar grande volume de dados, como a aquisição de imagens digitalizadas de câmeras CMOS. Este sistema também será utilizado como uma ferramenta inicial para o desenvolvimento de um módulo de armazenamento em uma placa baseada em computação reconfigurável a ser utilizada para fins didáticos. O sistema de arquivos implementado foi a FAT16 e o dispositivo de armazenamento de massa utilizado foram os cartões de memória SD-Secure Digital e MMC-MultiMediaCard / In computational systems, usually the data are stored in storage units, according to some logic, in structures called files. The File System is responsible for structure, identification, access, protection and management of the files. It also acts as a connector link between the user and the device, translating high level commands (derived for the user) into commands of low level, understandable for the storage unit. The present work aims to implement a File System for application in mobile devices based on reconfigurable computation. Such system will act as a support for the applications that need to store and/or to restore large volume of data, such as the acquisition of digital images from CMOS cameras. This system will also be used as an initial tool for the development of a storage module of a board, based on reconfigurable computation, to be used for didactic purposes. The implemented File System is based on FAT16 and the storage device used was the memory cards SD (Secure Digital) and MMC (MultiMedia- Card)
|
Page generated in 0.1119 seconds