• Nenhum resultado encontrado

Suportando o projeto de arquiteturas Halvesting-aware para aplicações em FPGA

N/A
N/A
Protected

Academic year: 2021

Share "Suportando o projeto de arquiteturas Halvesting-aware para aplicações em FPGA"

Copied!
134
0
0

Texto

(1)

Marília Souto Maior de Lima

SUPORTANDO O PROJETO DE ARQUITETURAS

HARVESTING-AWARE PARA APLICAÇÕES EM FPGA

Tese de Doutorado

Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br www.cin.ufpe.br/~posgraduacao

RECIFE 2015

(2)

Marília Souto Maior de Lima

SUPORTANDO O PROJETO DE ARQUITETURAS

HARVESTING-AWARE PARA APLICAÇÕES EM FPGA

Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Univer-sidade Federal de Pernambuco como requisito parcial para obtenção do grau de Doutor em Ciência da Computação.

Orientador: Cristiano Coelho de Araújo

RECIFE 2015

(3)

Catalogação na fonte

Bibliotecária Joana D’Arc Leão Salvador CRB 4-572

L732s Lima, Marília Souto Maior de.

Suportando o projeto de arquiteturas Halvesting-aware para aplicações em FPGA / . – 2015.

133 f.: fig., tab.

Orientador: Cristiano Coelho de Araújo.

Tese (Doutorado) – Universidade Federal de Pernambuco. CIN. Ciência da Computação, Recife, 2015.

Inclui referências e apêndices.

1. Engenharia da computação. 2. Energia solar. I. Araújo, Cristiano Coelho de (Orientador). II. Titulo.

(4)

Tese de Doutorado apresentada por Marilia Souto Maior de Lima à Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “Suportando o Projeto de Arquiteturas Harvesting-Aware

para Aplicações em FPGA” orientada pelo Prof. Cristiano Coelho de Araújo e

aprovada pela Banca Examinadora formada pelos professores:

_______________________________________________ Prof. Manoel Eusebio de Lima

Centro de Informática / UFPE

_______________________________________________ Prof. Abel Guilhermino da Silva Filho

Centro de Informática / UFPE

_______________________________________________ Prof. Divanilson Rodrigo de Sousa Campelo

Centro de Informática / UFPE

_______________________________________________ Prof. Elmar Uwe Kurt Melcher

Departamento de Sistemas e Computação / UFCG

_______________________________________________ Prof. Paulo Sérgio Brandão do Nascimento

Instituto Federal de Pernambuco/Campus Recife

Visto e permitida a impressão. Recife, 21 de agosto de 2013

___________________________________________________

Profa. Edna Natividade da Silva Barros

Coordenador da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.

(5)

Esse trabalho é dedicado à memória dos meus ancestrais, a todas as suas vicissitudes e bem-aventuranças que formaram o trançado da vida, e que me fizeram chegar até aqui.

(6)

Agradecimentos

Durante a minha caminhada, várias pessoas foram relevantes e me ajudaram a seguir adiante. Algumas estiveram presentes durante todo o processo, outras deram pequenas contribui-ções, outras uma palavra de incentivo e outras apenas um voto de sucesso. Mesmo correndo o risco de esquecer algum nome ou fato relevante, farei a seguir meus agradecimentos nomeando algumas dessas pessoas.

Meu primeiro agradecimento, mais que especial, é para o aluno Pedro Lázaro A. Santos pelo comprometimento e dedicação ao desenvolvimento desse trabalho. Obrigada a Rafael Macieira e Lucas Cambuim pela gentileza em ceder o estudo de caso utilizado. Obrigada também a Paulo Guedes e Marcus Vinícius pela disponibilidade em ajudar durante todo o processo. Gratidão a Jackson Maia pela revisão da proposta feita com tanta dedicação. E muita gratidão ao estimado Brian Honeyball pela bela tradução do artigo.

Obrigada ao meu orientador Cristiano pela paciência e credibilidade no trabalho, e aos professores Abel Guilhermino e Paulo Sérgio Nascimento pela placa instrumentada onde foram realizadas as medições e pela ajuda com o tema dissipação de potência em FPGAs.

Obrigada ao meu querido e amado Rubert Nóbrega pelo incentivo à realização desse trabalho. E por falar em incentivo, não poderia deixar de agradecer aos meus grandes amigos Ribamar Neves e Liana Silva pela escuta e motivação nos momentos difíceis.

Por fim, gostaria de agradecer com muito carinho o apoio e suporte da equipe Siliconreef durante os anos de doutorado, seja com uma palavra de incentivo ou até mesmo cobrindo a minha ausência.

(7)

Behind every beautiful thing, there’s some kind of pain. —BOB DYLAN

(8)

Resumo

Sistemas computacionais portáteis, como smartphones, tablets, câmeras etc., estão se tornando cada vez mais complexos por implementarem novas funcionalidades que não eram possíveis até alguns anos atrás. Sem conexão contínua à rede elétrica e dependentes de bateria como fonte de energia, torna-se um desafio projetar esses sistemas para que sejam capazes de se manterem operacionais durante um longo período de tempo sem recarga. Recentemente, a tecnologia de energy harvesting surgiu como uma forma de superar o problema de fornecimento de energia para este tipo de sistema. O conceito de energy harvesting significa coletar outras formas de energia disponíveis no ambiente e transformá-las em energia elétrica (KANSAL et al., 2007). Porém, para sistemas com energy harvesting, um modelo mais sofisticado é necessário para caracterizar o fornecimento e consumo da energia disponível: como utilizar a energia captada a uma taxa adequada, a fim de manter o sistema funcionando continuamente? Este paradigma foi chamado de “energy neutral operation mode” em (KANSAL et al., 2007) e significa que, durante todo o funcionamento, a energia consumida pelo sistema deve ser inferior à energia disponível, permitindo assim que a sua operação seja contínua e sem desligamento devido à falta de energia. Se por um lado a tecnologia de energy harvesting representa uma alternativa de fornecimento de energia, por outro lado, a complexidade da concepção do projeto aumenta, uma vez que elementos relativos à gestão do consumo de energia e adaptação do desempenho do sistema devem também estar presentes. Como forma de superar esse desafio, neste trabalho é proposto um novo modelo de arquitetura para a concepção de aplicações harvesting-aware em FPGA com o objetivo de reduzir a complexidade adicional de projeto inerente a este tipo de aplicação. A principal contribuição é um modelo de arquitetura capaz de tornar harvesting-aware aplicações síncronas em FPGA que usam energia solar como fonte alternativa de energia. A estratégia adotada consiste em adaptar o consumo de energia do sistema controlando a dissipação de potência dinâmica de acordo com a previsão de energia e os níveis de desempenho definidos pelo projetista. O modelo da arquitetura foi validado com uma implementação em Verilog sintetizável num FPGA Cyclone IV e as suas principais vantagens são: pode ser utilizada num amplo escopo de aplicações, uma vez que foi modelada para controlar sistemas síncronos; causa baixo impacto sobre a concepção do projeto, pois a sua utilização não implica mudanças no código fonte da aplicação. Além disso, a inclusão dos módulos da arquitetura no projeto acarretam um baixo overhead computacional em termos de área ocupada, consumo de energia e tempo de processamento. No estudo de caso apresentado, um conversor de RGB-YCrCb foi utilizado para validar os resultados obtidos através de simulação e medições no FPGA.

Palavras-chave: Energy Harvesting. “Energy Neutral Operation Mode”. Energia Solar. FPGA. Aplicações Harvesting-Aware. Projeto de Sistemas Power-Aware.

(9)

Abstract

Portable computing systems, such as smartphones, tablets, handheld cameras etc., are becoming increasingly more complex providing new functionalities that were not possible a few years ago. Dependent on batteries as a power source, and not connected continuously to the main supply, it becomes a challenge to design these systems to be operational for a long period of time. Recently, energy harvesting technology has emerged as a manner with which to tackle the problem of supplying energy to this type of system. The concept of energy harvesting means collecting other forms of energy available within the environment and transforming them into electrical energy (KANSAL et al., 2007). In systems with energy harvesting, a more sophisticated model is required in order to characterize the available energy: how to use the captured energy at an appropriate rate in order to keep the system running continuously? This paradigm has been called the “energy neutral operation mode” in (KANSAL et al., 2007) and means that the energy consumed by the system is less than the energy available throughout its operation, allowing its continuous operation without suffering shut downs due to the lack of energy. If on one hand energy harvesting technology represents an alternative for generating power for portable computing systems, on the other, the complexity of the project design increases, since elements regarding the management of energy consumption and adapting the application performance must be present. This fact becomes even more evident when implementing these systems in hardware. This thesis describes a novel scalable architecture model for the design of harvesting-aware applications on FPGAs. The objective of the proposed approach is to reduce the additional design complexity inherent to this type of design. The main contribution of this work is an architecture model capable of supporting applications on FPGAs that use solar energy to become harvesting aware. The adopted strategy was to adapt the energy consumption of the system by controlling the toggle rate of its signals according to the energy prediction and the performance levels set by the system designer. The architecture model was designed in a Cyclone IV FPGA and its main advantages are: it may be used within a wide range of applications, since it has been modelled to control synchronous systems; it causes a little impact on the project design, as to couple the harvesting-aware subsystem with the the application modules does not imply changes in the application source code. Moreover, the implementation of the architecture model has a low computational overhead in terms of area, power dissipation and processing time. In the case study presented, an RGB-YCrCb Converter was used as an application in order to validate the implementation data, simulation, measurements and results presented in this work.

Keywords: Energy Harvesting. Energy Neutral Operation Mode. Solar Energy. FPGA. Harvesting-Aware Applications. Power-Aware System Design.

(10)

Lista de Figuras

1.1 Monitoramento ambiental com rede de sensores sem fio. . . 18

1.2 Arquitetura básica de energy harvesting a partir de energia solar. . . 19

1.3 Ferramenta PowerPlay Power Analysis: grau de precisão da estimativa a cada etapa do projeto. . . 26

1.4 Detalhamento da dissipação de potência em diferentes projetos em FPGAs da família Stratix, Altera. . . 28

1.5 Cenário ideal de dissipação de potência em FPGAs para aplicações em modo stand-by. . . 28

2.1 Exemplo genérico da arquitetura interna de um FPGA. . . 31

2.2 Fluxo de projeto em FPGA, visão simplificada. . . 33

2.3 Cenário de ambiente ubíquo fundamentado no uso de energia solar. . . 35

2.4 Demanda de energia (power) por diferentes dispositivos eletrônicos. . . 36

3.1 Exemplo de aplicações: câmeras alimentadas por células solares. . . 45

3.2 Arquitetura com user policy e exemplos de restrições definidas pelo usuário. . . 47

3.3 Arquitetura como ajuste dinâmico de duty cycle. . . 47

3.4 Modelo do sistema incluindo o framework de gestão de energia proposto. . . . 48

3.5 Exemplo de tabela de níveis de desempenho, valores em quantidade por hora. . 51

3.6 Arquitetura do escalonador harvesting-aware para rede de sensores sem fio. . . 52

4.1 Arquitetura harvesting-aware para aplicações em FPGA com energia solar. . . 57

4.2 Máquina de estados do módulo “Controle de Desempenho” . . . 58

4.3 Máquina de estados do sub-módulo “Nível de Desempenho” . . . 59

4.4 Máquina de estados da função “executa_funcionalidade()”: liberando o chavea-mento do sinal de clock para a aplicação . . . 60

4.5 Máquina de estados do módulo “Predição de Energia” . . . 61

4.6 Comunicação entre os componentes da arquitetura harvesting-aware . . . 62

4.7 Ferramenta HA-App: fluxo de projeto para tornar a aplicação harvesting-aware. 63 4.8 Ferramenta HA-App: sistema harvesting-aware em Verilog sintetizável. . . 63

4.9 Arquivo de configuração: template disponibilizado com a ferramenta para ser editado pelo projetista. . . 64

4.10 Hierarquia de módulos em Verilog. . . 65

4.11 Restrição à modularidade na implementação da aplicação. . . 66

5.1 Estudo de caso: fluxo de execução do módulo de hardware GrecoRGB-CT. . . . 67 5.2 Estudo de caso: módulo GrecoRGB-CT prototipado na placa Altera DE2i-150. 68

(11)

5.3 Estudo de caso: arquitetura interna do módulo GrecoRGB-CT. . . 68

5.4 Incidência solar em 24/06/2011 na Universidade Loyola Marymount - Califórnia - EUA. . . 69

5.5 Incidência solar em 25/06/2011 na Universidade Loyola Marymount - Califórnia - EUA. . . 70

5.6 Incidência solar em 26/06/2011 na Universidade Loyola Marymount - Califórnia - EUA. . . 70

5.7 Incidência solar em 27/06/2011 na Universidade Loyola Marymount - Califórnia - EUA. . . 71

5.8 Potência real versus estimativa em 27/06/2011 considerando um painel solar de 2.4W e slots de 30 minutos. . . 71

5.9 Testbench para validação do sistema nos cenários A e B . . . 74

5.10 Circuito para medição das potências dinâmica e estática . . . 74

5.11 Cenários A e B: área ocupada no FPGA Altera Cyclone IV GX. . . 77

5.12 Gráfico com as medições na Placa DE2-70 e as inferências do PowerPlay. . . . 80

5.13 Sistema Harvesting-Aware: medição da tensão no resistor shunt (amplificada 1000x). . . 81

5.14 Sistema Harvesting-Aware: potências dinâmica e estática estimada pelo PowerPlay 82 5.15 Arquivo de Configuração da Ferramenta HA-App: exemplo de configuração para o perfil de maior consumo de energia. . . 84

5.16 Configuração 1 - Cenário A: Conversor, painel de 2.4W e bateria de 2Wh. . . . 84

5.17 Configuração 1 - Cenário B: Arquitetura e Conversor, painel de 2.4W e bateria de 2Wh. . . 85

5.18 Configuração 2 - Cenário A: Apenas o Conversor, painel de 4W e bateria de 2Wh. 85 5.19 Config. 2 - Cenário B: Arquitetura e Conversor, painel 4W e bateria 2Wh. . . . 86

5.20 Configuração 3 - Cenário A: Conversor, painel 2.4W e bateria 4Wh. . . 86

5.21 Config. 3 - Cenário B: Arquitetura e Conversor, painel 2.4W e bateria 4Wh. . . 86

5.22 Configuração 4 - Cenário A: Apenas o Conversor, painel de 4W e bateria de 4Wh. 87 5.23 Configuração 4 - Cenário B: Arquitetura controlando o Conversor, painel de 4W e bateria de 4Wh. . . 87

5.24 Configuração 5 - Cenário A: Apenas o Conversor, painel de 6W e bateria de 4Wh. 88 5.25 Configuração 5 - Cenário B: Arquitetura controlando o Conversor, painel de 6W e bateria de 4Wh. . . 88

5.26 Configuração 9 - Cenário A: Apenas o Conversor, painel de 4W e bateria de 6Wh. 89 5.27 Configuração 9 - Cenário B: Arquitetura controlando o Conversor, painel de 4W e bateria de 6Wh. . . 89

5.28 Configuração 10 - Cenário A: Apenas o Conversor, painel de 6W e bateria de 6Wh. 90 5.29 Configuração 10 - Cenário B: Arquitetura controlando o Conversor, painel de 6W e bateria de 6Wh. . . 90

(12)

5.30 Configuração dos níveis de desempenho com perfil de maior consumo de energia: 4 níveis de desempenho com tempo de execução de 30, 25, 15 e 10 minutos, respectivamente. . . 91 5.31 Configuração dos níveis de desempenho com perfil de menor consumo de energia:

4 níveis de desempenho com tempo de execução de 30, 15, 5 e 0 minutos, respectivamente. . . 92 5.32 Impacto da Arquitetura sobre a configuração do sistema em cada perfil de

desempenho. . . 93 A.1 Configuração do PowerPlay, otimização em função de potência durante a síntese. 106 A.2 Cenários A e B: compilação no Quartus e dados estatísticos de área ocupada no

FPGA. . . 107 A.3 Cenário A, resultado de simulação no Modelsim do conversor em modo normal

e stand-by, respectivamente. . . 108 A.4 Cenário B, resultado de simulação no Modelsim do sistema harvesting-aware

em modo normal e stand-by, respectivamente. . . 109 A.5 Cenário A - Conversor RGB-YCrCb: análise do PowerPlay sobre dissipação de

potência nos casos de execução normal e modo stand-by, respectivamente. . . . 110 A.6 Cenário B - Sistema Harvesting-Aware: análise do PowerPlay sobre

dissipa-ção de potência nos casos de execudissipa-ção normal e aplicadissipa-ção no modo stand-by, respectivamente. . . 111 B.1 Cenário B, código Verilog do último módulo hierárquico. . . 112 B.2 Cenário A - Aplicação Conversor, simulação 1 (1 execução): análise do

Power-Play sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 113 B.3 Cenário A, simulação 1 nos casos de execução normal e aplicação no modo

stand-by. . . 114 B.4 Cenário A - Aplicação Conversor, simulação 2 (12 execuções): análise do

Power-Play sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 115 B.5 Cenário A, simulação 2 nos casos de execução normal e aplicação no modo

stand-by. . . 116 B.6 Cenário A - Aplicação Conversor, simulação 3 (30 execuções): análise do

Power-Play sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 117 B.7 Cenário A, simulação 3 nos casos de execução normal e aplicação no modo

(13)

B.8 Cenário B - Sistema com Arquitetura e Conversor, simulação 1 (1 execução): análise do PowerPlay sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 119 B.9 Cenário B, simulação 1 nos casos de execução normal e aplicação no modo

stand-by. . . 120 B.10 Cenário B - Sistema com Arquitetura e Conversor, simulação 2 (12 execuções):

análise do PowerPlay sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 121 B.11 Cenário B, simulação 2 nos casos de execução normal e aplicação no modo

stand-by. . . 122 B.12 Cenário B - Sistema com Arquitetura e Conversor, simulação 3 (30 execuções):

análise do PowerPlay sobre dissipação de potência nos casos de execução normal e aplicação no modo stand-by. . . 123 B.13 Cenário B, simulação 3 nos casos de execução normal e aplicação no modo

stand-by. . . 124 C.1 Conversor em execução contínua: medição da tensão no resistor shunt

(amplifi-cada 1000x). . . 125 C.2 Conversor em execução contínua: potências dinâmica e estática estimada pelo

PowerPlay . . . 125 C.3 Conversor em stand-by: medição da tensão no resistor shunt (amplificada 1000x).126 C.4 Conversor em stand-by: potências dinâmica e estática estimada pelo PowerPlay 126 C.5 Arquitetura em execução contínua e stand-by: medição da tensão no resistor

shunt(amplificada 1000x). . . 127 C.6 Arquitetura em execução contínua: potências dinâmica e estática estimada pelo

PowerPlay . . . 127 C.7 Arquitetura em stand-by: potências dinâmica e estática estimada pelo PowerPlay 127 C.8 Arquitetura e Conversor em execução contínua: medição da tensão no resistor

shunt(amplificada 1000x). . . 128 C.9 Arquitetura e Conversor em execução contínua: potências dinâmica e estática

estimada pelo PowerPlay . . . 128 C.10 Arquitetura e Conversor em stand-by: medição da tensão no resistor shunt

(amplificada 1000x). . . 129 C.11 Arquitetura e Conversor em stand-by: potências dinâmica e estática estimada

pelo PowerPlay . . . 129 D.1 Ferramenta HA-App: executando o comando harch-creator.sh. . . 130 D.2 Ferramenta HA-App: diretorio criado pelo comando harch-creator.sh. . . 130

(14)

Lista de Tabelas

1.1 Dissipação de potência no FPGA: principais fatores de influência. . . 27

2.1 Motivação para uso de EH por tipo de aplicação. . . 36

2.2 Capacidade de geração por tipo de fonte de energia. . . 37

2.3 Esforço e ênfase no desenvolvimento da tecnologia de energy harvesting por área. 37 2.4 Detalhamento da fórmula de predição de potência para o próximo intervalo de tempo. . . 39

2.5 Detalhamento do fator GAP na fórmula de predição de potência. . . 40

2.6 Evolução da incidência solar em mW . . . 40

2.7 Detalhe do cálculo dos valores da média MDe dos vetores V e P. . . 40

3.1 Análise comparativa entre os trabalhos apresentados. . . 55

5.1 Cenários A e B: energia consumida em modo de execução contínuo. . . 76

5.2 Cenários A e B: energia consumida em modo stand-by. . . 76

5.3 Cenários de Análise Comparativa: PowerPlay versus Medição na Placa. . . 79

5.4 Cenário B - Sistema Harvesting-Aware: simulações adicionais com 60, 80 e 200 execuções sequenciais do Conversor sendo controlado pela Arquitetura. . . 82

5.5 Resumo do consumo de energia pelo sistema harvesting-aware: Arquitetura e a aplicação Conversor RGB-YCrCb. . . 83

(15)

Lista de Acrônimos

ASIC Application Specific Integrated Circuit . . . 22

CAD Computer-aided Design . . . 33

CLB Configurable Logic Block . . . 30

CMOS Complementary Metal-Oxide Semiconductor . . . 31

DFS Dynamic Frequency Scaling . . . 44

DMS Dynamic Modulation Scaling . . . 44

DSP Digital Signal Processor . . . 26

DVS Dynamic Voltage Scaling . . . 44

EWMA Exponentially Weighted Moving-Average . . . 38

FPGA Field-Programmable Gate Array . . . 22

FSM Finite State Machine . . . 58

GPU Graphics Processing Unit . . . 32

HDL Hardware Description Language . . . 33

I/O Input/Output . . . 25

IP Intelectual Property . . . 24

PMU Power Management Unit . . . 22

RTL Register-Transfer Level . . . 33

SoC System on Chip . . . 32

SRAM Static Random Access Memory . . . 31

WCMA Weather-Conditioned Moving Average . . . 38

(16)

Sumário

1 Introdução 17

1.1 Contexto . . . 17

1.2 Objetivo do Trabalho . . . 23

1.2.1 Estratégia para Reduzir o Consumo de Energia pela Aplicação . . . 25

2 Background - Conceitos e Motivação 30 2.1 Field-Programmable Gate Array (FPGA) . . . 30

2.1.1 Fluxo de Projeto em FPGA . . . 33

2.2 Energy Harvesting . . . 34

2.3 Predição de Energia Solar . . . 38

2.3.1 Algoritmo de Predição - WCMA . . . 38

3 Trabalhos Relacionados 44 3.1 Frameworkde Gestão de Energia para Sistemas Embarcados com Energy Har-vesting . . . 48

3.2 Escalonamento Energy-Aware em Redes de Sensores com Energy Harvesting . 50 3.3 Outras Abordagens em Power Management para Sistemas Embarcados . . . 53

3.4 Análise Comparativa do Estado da Arte . . . 54

4 Arquitetura Harvesting-Aware: Modelagem e Geração Automática 57 4.1 Modelagem da Arquitetura Harvesting-Aware para Aplicações em FPGA com Energia Solar . . . 57

4.1.1 Módulo Controle de Desempenho . . . 58

4.1.2 Módulo Predição de Energia . . . 60

4.1.3 Comunicação entre os Componentes . . . 62

4.2 Ferramenta HA-App: Geração Automática da Arquitetura Harvesting-Aware . 63 4.2.1 Configuração da Ferramenta HA-App . . . 64

4.3 Ambiente e Softwares Utilizados . . . 65

4.4 Restrições à Modelagem da Aplicação . . . 65

4.4.1 Perfil de Aplicações Aderente à Abordagem Adotada . . . 66

5 Estudo de Caso e Resultados Alcançados 67 5.1 Estudo de Caso . . . 67

5.1.1 Predição Solar e Dados de Incidência Utilizados . . . 69

5.1.2 Controle e Níveis de Desempenho . . . 72

(17)

16

5.2.1 Testbenchpara Validação da Arquitetura Harvesting-Aware . . . 73

5.2.2 Medição da Dissipação de Potências Dinâmica e Estática . . . 74

5.3 Simulações e Inferência sobre a Dissipação de Potência . . . 75

5.3.1 Análise dos Resultados de Simulação e Dissipação de Potência . . . 75

5.4 Medição da Potência Dissipada no núcleo do FPGA . . . 79

5.5 Resultados Alcançados - Eficácia da Arquitetura Harvesting-Aware . . . 82

5.6 Análise Conclusiva . . . 92

6 Trabalhos Futuros 95 6.1 Ampliando o Escopo para Aplicações Assíncronas e Outras Fontes de Energia . 95 6.2 Suporte ao Dimensionamento dos Componentes Painel Solar e Bateria . . . 95

6.3 Aumentando o Desempenho da Arquitetura Harvesting-Aware Implementada . 96 6.4 Aumentando a Eficácia com um Escalonador Harvesting-Aware . . . 97

6.5 Estratégia para Reduzir a Dissipação da Potência Estática . . . 97

Referências 99 Apêndice 105 A Configuração dos Softwares Quartus II e PowerPlay 106 B Resultados de Simulação e Análise de Potência 112 C Medição da Potência Dissipada no Núcleo do FPGA e Inferência do PowerPlay 125 D Ferramenta HA-App: Scripts e Comandos 130 D.1 Script Principal: harch-creator.sh . . . 131

(18)

17 17 17

1

Introdução

1.1

Contexto

Sistemas computacionais portáteis, como por exemplo smartphones, tablets, câmeras etc., estão se tornando cada vez mais complexos por implementarem novas funcionalidades que não eram possíveis até alguns anos atrás. Hoje, por exemplo, um smartphone funciona como um computador portátil, o qual pode ser utilizado como câmera fotográfica, acesso à internet, editor de texto, gravador de voz e vídeo etc., indo muito além do propósito inicial de ser apenas um telefone móvel. Porém, esses sistemas representam um desafio em termos de consumo de energia. Sem conexão contínua à rede elétrica e dependentes de bateria como fonte de energia, torna-se um desafio projetar esses sistemas para que sejam capazes de se manterem operacionais durante um longo período de tempo entre duas recargas da bateria.

Para sistemas onde espera-se que as aplicações sejam executadas durante sua vida útil, a questão do suprimento de energia dependente de uma fonte finita se torna um desafio, e muito esforço tem sido feito em pesquisas para um consumo mais eficiente da energia. Mais recentemente, outras alternativas começaram a ser exploradas com o objetivo de substituir ou complementar a energia fornecida pela bateria: coletar outras formas de energia disponíveis no próprio meio e transformá-la em energia elétrica (KANSAL et al., 2007).

Energy harvestingé um método que pode ser utilizado para resolver o problema de su-primento de energia em sistemas computacionais de execução perene, não carregados na tomada de forma contínua, seja pela sua eventual indisponibilidade ou pela portabilidade do sistema. O conceito energy harvesting representa esse processo de conversão da energia disponível no meio ambiente em energia elétrica, em escala na ordem de mW h. Segue o mesmo princípio da geração a partir de energia renovável em larga escala (na ordem de MW ), porém, quando o termo energy harvestingé empregado significa que a potência gerada chega tipicamente a valores entre micro e milliwatt (KA’MIERSKI; BEEBY, 2011).

O desenvolvimento da tecnologia de energy harvesting foi demandado inicialmente por aplicações de redes de sensores sem fio (Wireless Sensor Network (WSN)). Numa rede de sensores, tipicamente cada elemento, ou nó, possui em sua arquitetura: sensores, unidade de

(19)

1.1. CONTEXTO 18 processamento e controle, comunicação sem fio e fornecimento de energia. Como, por definição, as redes de sensores são sem fio e por isso não podem ser conectadas à rede elétrica tradicional, a energia precisa ser gerada localmente caso haja necessidade de sua utilização por um período maior do que a energia armazenada. Em geral, neste caso, a energia é fornecida por uma bateria que, no entanto, possui uma capacidade finita e precisa ser periodicamente recarregada ou substituída. O caso típico do uso de rede de sensores são aplicações de monitoramento ambiental e automação industrial, vide Figura 1.1. Nesse contexto, a substituição dos nós ou até mesmo a substituição das baterias inviabilizaria a instalação dessas redes de sensores que, em geral, possuem grande quantidade de nós e são instaladas em lugares inóspitos e de difícil acesso.

Figura 1.1: Monitoramento ambiental com rede de sensores sem fio.

Fonte: WALAN (2015).

Como consequência do problema de suprimento de energia em aplicações de rede de sensores sem fio, a tecnologia de energy harvesting foi desenvolvida como um método para substituir ou aumentar o tempo de vida útil das baterias (KA’MIERSKI; BEEBY, 2011). No caso de sistemas computacionais portáteis, de uma maneira geral não conectados à rede elétrica, a tecnologia de energy harvesting pode ser empregada para aumentar o tempo entre duas recargas da bateria, gerando assim mais conforto e segurança a seus usuários. Exemplos de dispositivos que tornaram-se comuns e que seriam beneficiados com o uso de energy harvesting são: celulares, smartphones, tablets, câmeras portáteis, entre outros.

As fontes de energia renovável tipicamente utilizadas são energias solar, cinética, térmica ou radiação eletromagnética. Energy harvesting a partir de energia cinética converte movimento, geralmente vibração, em energia elétrica. No caso de energia térmica, gradientes de temperatura podem ser coletados através de transdutores termoelétricos, enquanto energia solar pode ser coletada utilizando-se células fotovoltaicas (KHALIGH; ONAR, 2010; KA’MIERSKI; BEEBY, 2011). É também possível capturar energia a partir de ondas de rádio, mas a potência gerada pode ter valores insignificantes caso a transmissão das ondas não esteja num padrão de transmissão específico. Porém, independentemente do tipo de fonte de energia a ser utilizada, um dos desafios em energy harvesting é maximizar a potência gerada a partir da energia coletada no ambiente onde se encontra a aplicação (KA’MIERSKI; BEEBY, 2011).

Dentre as fontes alternativas citadas, a energia solar tem sido a fonte mais explorada em função de possuir transdutores comerciais com uma boa relação entre custo e desempenho.

(20)

1.1. CONTEXTO 19 A Figura 1.2 apresenta uma arquitetura básica de um sistema de energy harvesting a partir de energia solar, cujos componentes podem ser conceitualmente generalizados para qualquer tipo de fonte renovável (ALI et al., 2010):

Figura 1.2: Arquitetura básica de energy harvesting a partir de energia solar.

Fonte: ALI et al. (2010).

 Energy Harvesterou transdutor: coleta a energia do meio e a transforma em energia

elétrica, como por exemplo, célula fotovoltaica e transdutor piezoeletrétrico.

 Power Conditioning Subsyteme Energy Storage: em geral um transdutor não gera

energia suficiente para alimentar diretamente um dispositivo eletrônico portátil, sendo necessário condicionar e armazenar a energia em uma bateria ou supercapacitor.

 Energy Predictor: elemento que modela o comportamento da fonte de energia em

uso, sendo responsável por estimar a quantidade de energia a ser gerada no próximo intervalo de tempo.

 Intelligent Controller: controla a execução da aplicação a partir da predição de

energia calculada pelo Energy Predictor.

As fontes de energia renovável disponíveis no meio podem ser classificadas como (KANSAL et al., 2007):

1. Não controlável mas previsível: o momento e a quantidade de energia a ser captada não podem ser controlados, mas seu comportamento é previsível e pode ser modelado com uma margem de erro aceitável. Por exemplo, a energia solar não pode ser controlada, mas uma previsão da sua disponibilidade pode ser calculada baseada no seu comportamento cíclico de 24 horas.

2. Não controlável e não previsível: fonte de energia que não pode ser controlada (momento e quantidade) e não é fácil, ou até mesmo inviável, modelar-se a sua previsibilidade, como por exemplo, vibração.

(21)

1.1. CONTEXTO 20 3. Totalmente controlável: a energia pode ser gerada quando for desejável. Um exemplo de aplicação é a lanterna movida à energia mecânica, onde diferentes movimentos podem gerar energia (apertando uma alavanca, enrolando uma manivela ou sacudindo a própria lanterna).

O potencial de uso de várias formas de energia renovável, como cinética, térmica, solar, ondas eletromagnéticas e outras, apresenta alguns desafios, direcionando as pesquisas para a criação de novos transdutores, novos materiais, assim como circuitos integrados de gestão de energia inovadores e novas soluções para armazenamento de energia. Além do desenvolvimento da tecnologia em si, avanços no sentido de reduzir o nível de consumo de energia pelas aplicações como, por exemplo, novas técnicas de comunicação sem fio e novas arquiteturas que se adaptem à quantidade de energia disponível, também contribuirão para a utilização com eficácia de energy harvesting(HARROP; DAS, 2009; KA’MIERSKI; BEEBY, 2011).

Energy harvesting é um método que pode ser utilizado para resolver o problema de suprimento de energia em sistemas computacionais de execução perene não carregados na tomada de forma contínua, seja pela sua eventual indisponibilidade ou pela portabilidade do sistema. No entanto, um dos grandes desafios associados à esta tecnologia está em manter o desempenho do sistema satisfatório mesmo com uma variação na disponibilidade de energia. Como consequência, surge então a necessidade de adaptar o nível de consumo geral do dispositivo de forma dinâmica, em tempo de execução, modificando assim o seu desempenho. Isso acontece nos períodos em que pouca ou nenhuma energia é coletada, e a aplicação precisa então adaptar seu próprio desempenho para não se desligar (shut down) durante essa situação momentânea. Exemplos de situações corriqueiras, como essas, são momentos em que existe redução do movimento e não há vibração suficiente, ou em períodos chuvosos ou nublados no caso de energia solar (MOSER et al., 2007; PIORNO et al., 2009; KA’MIERSKI; BEEBY, 2011). Um exemplo prático para ilustrar essa situação é uma aplicação de monitoramento de tráfego, capaz de registrar imagens, armazená-las localmente e enviar os dados para um servidor via internet. Num período de baixa coleta de energia, a aplicação pode, por exemplo, continuar executando as funções de registrar e salvar locamente as imagens, porém o envio das mesmas ao servidor será executado apenas quando o nível de energia voltar a um determinado patamar. Dessa forma, a aplicação reduz o seu desempenho e o seu consumo de energia, executando menos funcionalidades, porém mantém sua função básica ativa.

Para uma aplicação ou dispositivo adaptar-se dinamicamente é preciso que o mesmo seja context-aware, no sentido de ser alimentado por uma fonte de energia intermitente, e capaz de adaptar-se a momentos de redução ou até mesmo um corte temporário no seu suprimento de energia. Nesses casos, a própria aplicação se adapta de forma a consumir menos energia ou mesmo entrando em modo de stand-by temporariamente. Consumir menos energia nesse caso pode significar executar menos funções ou reduzir seu desempenho. No caso de rede de sensores sem fio, um nó específico pode, por exemplo, decidir parar de transmitir dados se detectar que há pouca energia no momento e simplesmente postergar essa operação para um instante futuro em

(22)

1.1. CONTEXTO 21 que haja mais energia disponível. Isso significa que o projetista precisa definir em que momentos o sistema precisa reduzir o seu desempenho, sem no entanto, invalidar a aplicação.

Alguns aspectos no uso de fontes renováveis são fundamentalmente diferentes do uso de baterias. Mais do que um limite na quantidade máxima de energia disponível, sistemas embarcados com base em energia coletada do meio possuem um limite na velocidade e quantidade com que essa energia pode ser consumida (KANSAL et al., 2007). Em geral, a disponibilidade da energia captada do meio possui um comportamento não determinístico, estando sujeita por exemplo, a variações na condição climática nos casos de energia eólica e solar. Enquanto que, em sistemas alimentados por bateria, o aspecto “energia residual” é suficiente para caracterizar a energia disponível, um modelo mais sofisticado é necessário para caracterizar a energia disponível em sistemas com energy harvesting (KANSAL et al., 2007).

Um modelo de caracterização do consumo de energia consiste em tratar a energia coletada como um suplemento à energia da bateria. Nesse caso, um modelo de uso eficiente da energia surge ampliando para além do conceito de “maximizar o tempo de vida útil da bateria”: usar a energia captada numa taxa apropriada de forma a manter o sistema funcionando perenemente, sem desligar. Esse paradigma foi denominado “energy neutral operation mode” pelo trabalho KANSAL et al. (2007) e significa que a energia consumida pelo sistema é menor que a energia disponível durante toda a sua operação, permitindo o seu funcionamento perene sem sofrer shut downpor falta de energia. Embora esse conceito tenha sido aplicado originalmente aos nós de uma rede de sensores sem fio, o mesmo pode ser aplicado a qualquer tipo de sistema computacional portátil, e não apenas a aplicações com rede de sensores. Dessa forma, pode-se dizer que um sistema com energy harvesting satisfaz o “energy neutral operation mode” se os níveis de desempenho especificados forem atingidos a cada momento durante toda sua vida útil. Como consequência, o sistema ficaria sujeito apenas a avarias no hardware, mas não falharia por falta de energia.

Dentro desse conceito de manter o “energy neutral operation mode”, duas novas pergun-tas surgiram em relação ao gerenciamento de energia:

1. energy neutral operation: como executar a aplicação de forma que a energia utilizada seja sempre menor que a energia disponível no momento (energia coletada mais a residual na bateria)?

2. desempenho máximo local: garantido o item anterior, qual o maior nível de desempe-nho que pode ser mantido a cada intervalo de tempo?

Podemos dizer que essas perguntas, quando respondidas, implicam uma aplicação energy harvesting aware, ou seja, aplicações que em tempo de execução são capazes de adaptar-se à variação na disponibilidade de energia. Porém, mantendo o funcionamento esperado de forma constante e perene.

Os trabalhos MEIER (2011); MOSER; CHEN; THIELE (2010) detalhados no Capítulo 3, implementaram uma arquitetura para tornar aplicações harvesting aware, porém com duas

(23)

1.1. CONTEXTO 22 características limitantes de sua aplicabilidade: foram desenvolvidas focadas exclusivamente em aplicações do tipo rede de sensores sem fio, além de funcionarem apenas para rede de sensores com implementação via software (cada nó da rede tem um processador com um sistema operacional embarcado sendo executado). É possível verificar uma tendência na indústria no desenvolvimento de Application Specific Integrated Circuits (ASICs) para sistemas com energy harvesting. Empresas líderes em semicondutores como a Linear Technology, ST Microelectronics e Texas Instruments desenvolveram chips específicos para gestão de fontes alternativas de energia, Power Management Units (PMUs) específicas para energia solar, vibração e térmica (TECHNOLOGY, 2015; MICRO, 2015; INSTRUMENTS, 2015). Pioneira na área de automação industrial e residencial com energy harvesting, a européia EnOcean se destaca por disponibilizar plataformas de hardware específicas e sem a utilização de baterias (ALLIANCE, 2014). Nos sistemas computacionais portáteis que utilizam a tecnologia de energy harvesting, os conversores de energia são muito pequenos, e consequentemente o montante de energia coletada é limitado, por isso o movimento da indústria em criar hardware ultra low power dedicado a esse fim.

Além dos ASICs e processadores, tanto os de propósito geral como os específicos, uma alternativa para o projetista de sistemas digitais são os Field-Programmable Gate Arrays (FPGAs), pois aliam a flexibilidade de projeto dos processadores com o desempenho dos ASICs. FPGAs são dispositivos de silício pré-fabricados que podem ser eletronicamente programáveis

para se tornarem um sistema ou aplicação digital dos mais variados tipos (ALTERA, 2007a; SUN et al., 2008; KLOPPER et al., 2013). Apropriados a aplicações com baixo ou médio volume de produção, o uso de FPGA proporciona uma solução mais barata e com menor tempo de desenvolvimento quando comparada com uma solução customizada em ASIC (SUN et al., 2008; FAROOQ; MARRAKCHI; MEHREZ, 2012a). Com os FPGAs parcialmente reconfiguráveis (SEDCOLE et al., 2006; MCDONALD, 2008; NASCIMENTO et al., 2008; ALTERA, 2010; BONAMY et al., 2012), onde parte do código pode ser reconfigurado enquanto o restante continua em execução, aumenta também a flexibilidade em relação aos projetos em ASIC, seja em termos de reprojeto quanto em termos de execução.

O uso de processadores nos FPGAs (chamados de “soft processor”) permitiu a criação rápida de sistemas com os dois paradigmas na arquitetura: software sendo executado em um processador e hardware para acelerar parte do que seria executado em software. Uma implementação em hardware pode significar um ganho em desempenho e eficiência no consumo de energia em relação a mesma implementação em software (SUN et al., 2008). Porém, a codificação do hardware é mais complexa, mais suscetível a erros e mais difícil de depurar, exigindo assim um tempo maior de projeto e profissionais mais especializados. O projeto em software, por sua vez, possui ferramentas de depuração e análise mais maduras e gratuitas (ALDHAM, 2011). Dessa forma, a abordagem de implementar hardware em FPGA baseado em software tem se tornado uma opção para obter eficiência em termos de desempenho e consumo de energia, além de ter a vantagem de se possuir um código mais simples e mais fácil de se depurar implementado em software.

(24)

1.2. OBJETIVO DO TRABALHO 23 O surgimento dos FPGAs diminuiu a distância entre os programas de software, flexíveis e descritos em linguagens de alto nível, e os circuitos de hardware, que por sua vez são complexos, descritos em baixo nível de abstração e de difícil depuração. Os chips em FPGA representam o meio do caminho entre sistema em ASIC ou software puro, mas ainda requerem do projetista habilidades próximas ao baixo nível de hardware. Essa abordagem tenta obter os benefícios das duas técnicas: flexibilidade e maior facilidade de implementação e depuração do software, eficiência no consumo de energia e velocidade no processamento e resposta (ALTERA, 2007a). Atualmente, as aplicações e sistemas implementam funcionalidades com complexidade cada vez maior, demandando assim uma computação de alto desempenho e com rápido tempo de resposta. Algoritmos de comunicação, compressão de dados e encriptação, por exemplo, têm aumentado drasticamente a complexidade e necessidade de resposta em alta performance dos sistemas (ALTERA, 2007a). Soluções com aceleração em hardware utilizando FPGAs representam uma nova estratégia como resposta às necessidades de alto desempenho com baixo consumo de energia (ALTERA, 2007a). Os trabalhos apresentados em NIKITAKIS; PAGANOS; PAPAEFSTATHIOU (2014); TTOFIS; THEOCHARIDES (2014); LIU; BOUGANIS; CHEUNG (2014) são exemplos de algoritmos na área de computação visual acelerados através da imple-mentação em FPGA, e o trabalho MAURICH; GüNEYSU (2014) exemplifica um algoritmo de criptografia com aceleração também via FPGA. A tendência do mercado atual de computação de alto desempenho têm quatro requisitos principais: desempenho, produtividade, consumo de energia e preço (ALTERA, 2007a). Apesar das vantagens dos FPGAs para alguns tipos de aplicação, não existe ainda suporte a projetos harvesting-aware para sistemas computacionais projetados em FPGA.

1.2

Objetivo do Trabalho

O trabalho “Suportando o Projeto de Arquiteturas Harvesting-Aware para Aplicações em FPGA” tem por objetivo a definição de um modelo, e sua implementação sintetizável, de uma arquitetura harvesting-aware para sistemas computacionais, implementados em FPGA, com a tecnologia de energy harvesting a partir de energia solar. Dessa forma, o objetivo da Arquitetura é tornar harvesting-aware as aplicações desenvolvidas para FPGA. Os diferenciais e objetivos específicos do trabalho estão descritos a seguir:

 Tornar aplicações em FPGA harvesting-aware: definição de uma estratégia para

garantir que a aplicação será executada de forma a satisfazer o “energy neutral ope-ration mode”. Ou seja, a aplicação funcionará perenemente e no melhor desempenho possível a cada intervalo de tempo. A operação em modo neutro permite que a mesma não esgote a bateria, e consequentemente não pare de executar suas funcionalidades por falta de energia.

(25)

redu-1.2. OBJETIVO DO TRABALHO 24 zir a complexidade do desenvolvimento de aplicações harvesting-aware em FPGA, tornando transparente para o projetista a implementação desse conceito. O projetista precisa apenas configurar alguns parâmetros da Ferramenta HA-App de acordo com as características da sua aplicação, e automaticamente a Arquitetura é gerada, tor-nado a aplicação harvesting-aware. A Ferramenta HA-App foi desenvolvida com o objetivo de automatizar a geração do código Verilog sintetizável para a arquitetura harvesting-aware.

 Redução do tempo de desenvolvimento: uma vez que a implementação da arquitetura

é automatizada, o tempo necessário para implementar o aspecto harvesting-aware da aplicação é reduzido. Para gerar o código sintetizável da arquitetura, basta configurar a ferramenta a cada novo projeto.

 Suporte a sistemas síncronos: a Arquitetura proposta pode ser utilizada para sistemas

digitais síncronos, não estando limitada a um subconjunto específico de aplicações. A Arquitetura gerada pela ferramenta ajusta o desempenho de cada funcionalidade ativando ou desativando sua execução, independentemente do que a funcionalidade em si representa. Através do controle do chaveamento do sinal de clock, a Arquitetura ajusta o desempenho de cada funcionalidade ativando ou desativando sua execução, independentemente do que a funcionalidade em si representa.

Considerando as características listadas acima, o diferencial do trabalho consiste em tornar transparente para o projetista a codificação do aspecto harvesting-aware da aplicação, uma vez que o ajuste de desempenho da aplicação, em tempo de execução, é feito pela Arquitetura gerada. Ou seja, o objetivo do trabalho proposto é dar suporte ao desenvolvimento de aplicações em FPGA que satisfaçam o “energy neutral operation mode”, através da geração automática de uma arquitetura harvesting-aware a ser conectada ao código da aplicação como um módulo a parte, sem adicionar dessa forma complexidade ao código da aplicação a ser implementado. Assim, o resultado final a ser alcançado é mostrar que a execução das aplicações satisfaz o “energy neutral operation mode”, mesmo que em algum momento seja necessário reduzir desempenho de algumas funcionalidades.

A contribuição deste trabalho em relação aos seus antecessores consiste em criar e disponibilizar uma ferramenta para tornar harvesting-aware aplicações implementadas em FPGA, além de ampliar o escopo de uso para aplicações síncronas. Até o momento, todos os trabalhos estavam conceitualmente restritos a aplicações do tipo “redes de sensores sem fio”, implementadas em software e sem reusabilidade de código (MEIER, 2011; MOSER; CHEN; THIELE, 2010; HSU et al., 2009; JIANG et al., 2007). Dessa forma, o trabalho proposto tem por objetivo validar as seguintes hipóteses:

 É possível criar uma arquitetura harvesting-aware como bloco de Intelectual

(26)

1.2. OBJETIVO DO TRABALHO 25 de suas características de alto desempenho e baixo consumo de energia, uma vez que aplicações harvesting-aware possuem intrisecamente os requisitos de menor consumo possível de energia com máximo desempenho a cada momento.

 É possível reduzir a complexidade para o projetista em tornar harvesting-aware uma

aplicação síncrona implementada em FPGA;

 É possível modelar e implementar uma solução em hardware tão reutilizável como

um bloco de IP, genérico o suficiente para aplicações síncronas em FPGA, que seja plug and play, e ao mesmo tempo sem causar overhead em termos de área ocupada, consumo de energia e tempo de processamento;

 É possível gerar automaticamente o código desse bloco de IP através da configuração

de alguns parâmetros;

1.2.1

Estratégia para Reduzir o Consumo de Energia pela Aplicação

A energia consumida pelo sistema é determinada pela potência total dissipada no FPGA ao longo do tempo. Por sua vez, a dissipação de potência no FPGA é afetada pelos seguintes fatores (ALTERA, 2013a):

 Dispositivo selecionado: cada família de dispositivos possui diferentes características

de potência, influenciado por fatores como tecnologia do processo de fabricação, tensão de alimentação, projeto elétrico e arquitetura do dispositivo. Dentro de uma mesma família, a potência também pode variar. Por exemplo, dispositivos menores dissipam menos potência estática em função da sua menor quantidade de transistores. A potência dinâmica, por sua vez, pode ser maior nos dispositivos com arquiteturas que utilizam roteamento global.

 Condições ambientais: thermal power é a potência dissipada em função da

tempe-ratura no FPGA. O sistema de resfriamento deve ser dimensionado para dissipar o calor gerado pelo dispositivo. A temperatura de operação afeta, principalmente, a dissipação de potência estática. As condições ambientais que podem afetar a dissipa-ção de potência são: o fluxo de ar quente (airflow), o calor dissipado (heat sink), a temperatura de junção e resistência térmica da placa. Quanto maior a temperatura de junção (que significa a maior temperatura de operação de um semicondutor) maior a dissipação da potência estática. Os principais fatores que interferem na temperatura de junção são o sistema de resfriamento e a temperatura do ambiente.

 Recursos do dispositivo utilizados: a quantidade e o tipo de pinos de Input/Output

(I/O) afetam a potência total dissipada. Pinos de saída controlam componentes externos ao chip, resultando numa maior carga capacitiva que implica, por sua

(27)

1.2. OBJETIVO DO TRABALHO 26 vez, uma maior potência dinâmica dissipada. A quantidade, o tipo e o modo de operação de blocos lógicos (elementos lógicos, memória, multiplicadores etc.) afetam tanto a dissipação de potência estática quanto dinâmica. Por exemplo, um bloco de um Digital Signal Processor (DSP) executando uma multiplicação de 18 bit x 18 bit e um DSP executando operações acumulativas implicam cargas capacitivas diferentes, o que significa potências dinâmicas diferentes. Por fim, os sinais globais também afetam a potência dissipada. Sinais globais aumentam a área de roteamento, implicando em maior carga capacitiva, aumentando também a potência dinâmica.

 Variação nos sinais: o comportamento de cada sinal do projeto também afeta

signifi-cativamente a potência dissipada. O toggle rate de um sinal é o número de vezes que o sinal muda de valor dentro de uma unidade de tempo. Quanto maior a variação, linearmente maior será a potência dinâmica dissipada.

Na plataforma da Altera, por exemplo, a ferramenta PowerPlay Power Analysis possibilita estimar a potência dissipada pelo FPGA, com variação de 20% (vinte por cento) na precisão, ainda durante a etapa de projeto do sistema (ALTERA, 2013a). A estimativa da dissipação de potência é relevante por possibilitar o conhecimento prévio do consumo de energia, e por consequência permitir o cálculo da fonte de alimentação, reguladores de tensão, dissipação de calor e sistema de resfriamento durante o desenvolvimento dos sistemas. A Figura 1.3 a seguir mostra as etapas de projeto em que a ferramenta PowerPlay pode ser utilizada e a relação com a precisão da estimativa, quanto mais avançado nas etapas de implementação do projeto maior a precisão da ferramenta.

Figura 1.3: Ferramenta PowerPlay Power Analysis: grau de precisão da estimativa a cada etapa do projeto.

Fonte: ALTERA (2013a).

A ferramenta PowerPlay Power Analyzis fornece uma estimativa da potência dissipada pelo FPGA a partir dos seguintes parâmetros (ALTERA, 2012):

(28)

1.2. OBJETIVO DO TRABALHO 27

 Core Static Thermal Power Dissipation: é a potência dissipada pelo FPGA quando

nenhum sinal está chaveando, onde tanto a lógica digital quanto a analógica dissipam potência. Essa dissipação representa a fuga de corrente estática.

 Core Dynamic Thermal Power Dissipation: é a dissipação adicional acarretada pelo

funcionamento do dispostivo em função do chaveamento dos sinais e do carregamento e descarregamento de carga capacitiva. As principais variáveis que afetam a dissipa-ção dinâmica de potência são tensão de alimentadissipa-ção, carregamento de capacitância e frequência do sinal de clock.

 I/O Thermal Power Dissipation: representa o consumo dos blocos de I/O, incluindo

os sinais de I/O de propósito geral e a transmissão serial de alta velocidade (a partir de 3 Gbps).

 Total Thermal Power Dissipation: representa a soma dos valores descritos acima.

A Tabela 1.1 a seguir resume a relação entre os fatores de influência por tipo de potência dissipada.

Tabela 1.1: Dissipação de potência no FPGA: principais fatores de influência.

Fator de Influência Potência Estática Potência Dinâmica Potência de I/O Dispositivo Selecionado X X

Condições Ambientais X

Recursos Utilizados X X X

Variação nos Sinais X X

Nos FPGAs da Altera com tecnologia abaixo de 90-nm, os valores de dissipação de potência dinâmica e de I/O predominam em relação ao consumo total. Como as aplicações apresentam uma tendência a ter performances de operação cada vez maiores (o que acarreta num clock de maior frequência) e maiores transmissões de taxas de dados, o carregamento e descarregamento de cargas capacitivas torna-se o principal consumidor de potência nesses FPGAs (ALTERA, 2012). A Figura 1.4 a seguir apresenta o quanto cada tipo de dissipação representa no consumo total em diferentes projetos reais de clientes da Altera, onde pode-se observar que as potência dinâmica e I/O predominam na dissipação total. Como os projetos tendem a ter alto desempenho com alta largura de banda, mais lógica é utilizada numa alta frequência de clock, além de uma maior quantidade de sinais de I/O chaveando também numa maior frequência (ALTERA, 2012).

Uma vez que a predominância na dissipação da potência está baseada nas dissipações dinâmica e de I/O, e essas por sua vez estão realacionadas ao chaveamento de sinais e comunica-ção/transmissão de dados, a estratégia adotada neste trabalho consiste em ajustar a execução da aplicação de forma a reduzir ou aumentar a dissipação dinâmica de potência. Através do controle de chaveamento do sinal de clock, a Arquitetura gerada pela ferramenta ajusta o desempenho de

(29)

1.2. OBJETIVO DO TRABALHO 28

Figura 1.4: Detalhamento da dissipação de potência em diferentes projetos em FPGAs da família Stratix, Altera.

Fonte: ALTERA (2012).

cada funcionalidade ativando ou desativando sua execução. Ou seja, quando há maior disponi-bilidade de energia, a aplicação pode executar suas funcionalidades numa frequência maior, o que significa maior chaveamento de sinais e/ou maior transmissão de dados. Quando há pouca disponibilidade de energia, o processo inverso acontece, causando uma redução na dissipação de potência dinâmica.

A Figura 1.5 a seguir é meramente ilustrativa, e tem como objetivo mostrar visualmente o resultado a ser alcançado com o uso da Arquitetura harvesting-aware. No modelo ideal, a potência dinâmica seria reduzida a um valor próximo a zero quando a aplicação estivesse no modo stand-by.

Figura 1.5: Cenário ideal de dissipação de potência em FPGAs para aplicações em modo stand-by.

Neste trabalho, o modelo de dissipação de potência pelo sistema foi então definido pela fórmula a seguir:

(30)

1.2. OBJETIVO DO TRABALHO 29 PT = PS+ PD+ PI/O, onde

PT = potência total consumida PS= potência estática PD= potência dinâmica

PI/O = potência de I/O

Com a Arquitetura harvesting-aware, a estratégia para reduzir o consumo total (PT)

consiste em diminuir o consumo dos fatores PDe PI/O. No entanto, a inclusão dos módulos de

controle e predição específicos da Arquitetura implica um sistema com uma maior quantidade de recursos utilizados, e consequentemente, uma maior variação de sinais. Dessa forma, para validação da Arquitetura, o modelo de dissipação de potência (PT = PS+ PD+ PI/O) levou em

consideração o sistema como um todo: aplicação e Arquitetura harvesting-aware.

A implementação e avaliação da Arquitetura harvesting-aware foram feitas utilizando sempre o mesmo dispositivo e nas simulações foram utilizadas as mesmas condições ambientais. Dessa forma, os fatores “dispositivo” e “condições ambientais” estão fixos para os dois sistemas (aplicação e aplicação sendo controlada pela Arquitetura). Porém, os fatores “recursos utilizados” e “sinais” sofrem alteração pela inclusão da Arquitetura em si, assim como pela sua atuação na execução da aplicação.

O restante do documento está organizado da seguinte forma:

 Capítulo 2: apresenta a motivação e o background conceitual básico sobre a

tecnolo-gia de energy harvesting. Assim como apresenta um detalhamento sobre algoritmos de predição de energia solar e uma revisão sobre a tecnologia de FPGA.

 Capítulo 3: são apresentados os trabalhos mais relevantes e recentes sobre ambientes

e plataformas para o desenvolvimento de aplicações harvesting-aware.

 Capítulo 4: apresenta detalhadamente a modelagem da Arquitetura, assim como o

fluxo de projeto para a geração automática do código da mesma.

 Capítulo 5: descreve a aplicação utilizada como estudo de caso, assim como a

abordagem utilizada para validação da Arquitetura Harvesting-Aware, simulações realizadas e as medições de potência dissipada no FPGA, assim como a análise conclusiva sobre os resultados alcançados.

 Capítulo 6: apresenta uma lista de trabalhos futuros com possíveis direções para a

(31)

30 30 30

2

Background - Conceitos e Motivação

Este capítulo tem por objetivo detalhar a motivação para este trabalho e os conceitos principais sobre FPGAs, energy harvesting e predição de energia solar, estando organizado da seguinte forma:

 Seção 2.1 - Field-Programmable Gate Array (FPGA): descreve a tecnologia de

FPGA, vantagens e desvantagens, assim como apresenta um resumo de um fluxo de projeto implementado nessa tecnologia.

 Seção 2.2 - Energy Harvesting: descreve o histórico da tecnologia de energy

harves-ting, sua aplicabilidade, foco das pesquisas no momento e principais aplicações.

 Seção 2.3 - Algoritmo de Predição de Energia Solar: descreve o algoritmo de predição

de energia solar utilizado neste trabalho, vantagens e configuração de parâmetros.

2.1

Field-Programmable Gate Array (FPGA)

FPGAs são dispositivos de silício pré-fabricados que podem ser programados eletri-camente para se tornarem uma ampla variedade de sistemas digitais. Os FPGAs sugiram em meados dos anos 1980 e têm se tornado popular desde então no projeto de circuitos digitais de baixo a médio volumes de produção, uma vez que são mais baratos e com menor tempo de imple-mentação quando comparados aos sistemas projetados em ASICs. O avanço na sua tecnologia de fabricação permitiu que os FPGAs hoje sejam usados para implementar sistemas complexos e por inteiro. A tecnologia de FPGA permite a customização das funções e características dos produtos, adaptação a novos padrões e reconfiguração do hardware para aplicações específicas mesmo após o produto ter sido instalado (MOORE, 2014; FAROOQ; MARRAKCHI; MEHREZ, 2012b).

No exemplo genérico da Figura 2.1, são apresentados os elementos básicos da arquitetura de um FPGA:

 Blocos de lógica programável (Configurable Logic Block (CLB)): os CLBs

(32)

2.1. FIELD-PROGRAMMABLE GATE ARRAY (FPGA) 31

 Roteamento programável: conecta as funções implementadas no blocos lógicos.  Blocos de I/O: utilizados para as conexões off-chip, são conectados aos blocos lógicos

através das das trilhas de roteamento interconectadas.

Figura 2.1: Exemplo genérico da arquitetura interna de um FPGA.

Fonte: FAROOQ; MARRAKCHI; MEHREZ (2012b).

Entre os fabricantes comerciais, como por exemplo Altera e Xilinx, predomina o uso da tecnologia de programação do FPGA baseada em memória Static Random Access Me-mory (SRAM)em função de sua característica reprogramável, ter maior velocidade e menor dis-sipação de potência dinâmica em função de utilizar um processo CMOS padrão (Complementary Metal-Oxide Semiconductor (CMOS)). Num FPGA baseado em SRAM, as células de memória são distribuídas no dispositivo para prover sua configurabilidade: configuração das trilhas de roteamento e configuração dos CLBs que implementam as funções lógicas (FAROOQ; MAR-RAKCHI; MEHREZ, 2012b).

Enquanto os sistemas implementados em ASIC requerem alto investimento financeiro num longo prazo até chegar numa primeira versão do dispositivo final, os FPGAs podem ser configurados em poucos minutos e custam entre centenas a poucos milhares de dólares, apresentando dessa forma um menor risco de projeto (MOORE, 2014; FAROOQ; MARRAKCHI; MEHREZ, 2012b). Além disso, atualizações futuras podem ser facilmente realizadas através de um simples download do bitstream da nova aplicação. Ainda no caso de sistemas com requisitos variáveis, é possivel reconfigurar parcialmente uma parte do FPGA enquanto a parte restante permanece em execução. Ao mesmo tempo que a flexibilidade representa a principal vantagem da tecnologia FPGA, essa natureza flexível torna os FPGAs mais lentos, maiores e

(33)

2.1. FIELD-PROGRAMMABLE GATE ARRAY (FPGA) 32 com maior dissipação de potência que os ASICs em função principalmente das interconexões de roteamento programável que ocupam quase 90% (noventa por cento) da área em um FPGA (FAROOQ; MARRAKCHI; MEHREZ, 2012b). Como forma de minimizar essas desvantagens, novas características e arquiteturas são implementadas pelos fabricantes com o objetivo de aumentar performance, reduzir área e dissipação de potência, como por exemplo:

 Integração de Processadores: a integração de processadores e periféricos à logica

programável dos FPGAs permitiu a criação de soluções System on Chip (SoC), dei-xando os projetistas com mais possibilidades para aumentar performance, reduzir custo, assim como mais opções para reduzir dissipação de potência e risco de projeto (ALTERA, 2010). FPGAs e microprocessadores juntos podem realizar tanto funci-onalidades intensivas em computação como instruções customizadas em hardware, gerando ganho em termos de redução de área e aumento de performance. Como exemplo, temos a Xilinx que integrou processadores dedicados (PowerPC, Atmel) à sua arquitetura. Outra tendência é o uso de soft processors, a qual aponta para uma alternativa de ganho de área para aplicações específicas, como o caso do Nios pela Altera e Microblaze pela Xilinx, onde instruções não utilizadas podem ser removidas (FAROOQ; MARRAKCHI; MEHREZ, 2012b).

 Reconfiguração pacial dinâmica: é a habilidade de reconfigurar parte do FPGA

enquanto o restante do dispositivo permanece em execução. O maior benefício con-siste em aumentar a capacidade de processamento numa mesma área removendo as funções que não são executadas simultaneamente. Um exemplo comercial de FPGA com suporte a reconfiguração parcial é modelo Stratix V, da Altera. A reconfiguração parcial é uma característica relevante e adequada a aplicações do tipo computação de alto desempenho que requerem atualização dos algoritmos para atender plataformas diferentes a cada momento, assim como aplicações militares onde a parte reconfigu-rável do FPGA pode alternar entre as funções de criptografia e descriptografia para aumentar a segurança do sistema (ALTERA, 2010).

 Reuso de blocos de IP: ao longo dos anos, os fabricantes de FPGA foram

perce-bendo que muitos sistemas precisam do mesmo tipo de funcionalidade, tais como processamento gráfico, rede, manipulação de dados de I/O (MOORE, 2014). En-tão, como uma forma de aumentar a eficiência em geral, diferentes tipos de blocos dedicados foram incoporados à arquitetura do FPGA como, por exemplo, multiplica-dores, adicionamultiplica-dores, DSPs, Graphics Processing Unit (GPU), unidades de ponto flutuante etc (FAROOQ; MARRAKCHI; MEHREZ, 2012b). Esses blocos podem ser selecionados, configurados e adicionados à lógica funcional do sistema.

(34)

2.1. FIELD-PROGRAMMABLE GATE ARRAY (FPGA) 33

2.1.1

Fluxo de Projeto em FPGA

O fluxo de projeto de uma aplicação em FPGA se inicia a partir da descrição do projeto em uma HDL (Hardware Description Language (HDL)) e é finalizado com a geração do arquivo com a sequência de bits (bitstream) a ser programado no FPGA. Esse fluxo de projeto é suportado e automatizado pelas ferramentas de software fornecidas pelo fabricante do FPGA, chamadas de ferramentas Computer-aided Design (CAD). O processo de conversão da descrição de um circuito num formato a ser programado em um FPGA pode ser descrito de uma forma simplificada em seis etapas principais, conforme Figura 2.2 (FAROOQ; MARRAKCHI; MEHREZ, 2012b):

Figura 2.2: Fluxo de projeto em FPGA, visão simplificada.

Fonte: FAROOQ; MARRAKCHI; MEHREZ (2012b).

 Etapa 1 - Logic Synthesis: consiste em converter uma descrição em HDL num

conjunto de portas lógicas e flip-flops, chamado de netlist. Dessa forma, a ferramenta de síntese converte a descrição RTL (Register-Transfer Level (RTL)) de um projeto numa álgebra booleana, cuja saída é a descrição do circuito numa lógica booleana de portas lógicas e flip-flops (circito digital que implementa memória de 1 bit), incluindo os fios de conexão entre esses elementos.

 Etapa 2 - Technology mapping: a partir de uma biblioteca de células para uma dada

(35)

2.2. ENERGY HARVESTING 34 síntese, numa rede de células. O algoritmo de mapeamento também pode otimizar essa conversão levando em consideração restrições de área ou dissipação de potência.

 Etapa 3 - Packing: os elementos lógicos são organizados, tipicamente, em dois níveis

hierárquicos. o primeiro consiste nos blocos lógicos e o segundo nível agrupa os blocos em clusters, de forma que cada cluster pode ser mapeado diretamente a um elemento lógico no FPGA.

 Etapa 4 - Placement: consiste em determinar qual bloco lógico dentro do FPGA

deve implementar a instância do bloco lógico correspondente requerido pelo circuito. Entre as otimizações dessa etapa, é possível considerar o posicionamento dos blocos lógicos conectados próximos uns aos outros para minimizar a fiação no roteamento, ou posicionar os blocos de forma a equilibrar a densidade da fiação do roteamento dentro do FPGA, ou ainda maximizar a velocidade do circuito.

 Etapa 5 - Routing: o roteamento num FPGA consiste em atribuir para cada rede da

netlistum recurso de roteamento de forma que nenhum recurso seja compartilhado por mais de uma rede. O caminho crítico de uma netlist é representado pelo caminho com maior atraso, e a frequência máxima de clock numa netlist é inversamente proporcional ao atraso do caminho crítico. Assim, quanto maior o atraso do caminho crítico, menor a frequência de operação da netlist.

 Etapa 6 - Bitstream generation: o bitstream de uma netlist contém informações

para cada bit SRAM do FPGA, se deve ser programado para 0 ou 1. O algortimo de geração de bitstream lê as informações de mapeamento tecnólogico, packing e placement, para programar a SRAM de cada CLB, enquanto as informações de roteamento são utilizadas para programar a SRAM das interconexões.

2.2

Energy Harvesting

Energy harvesting, conceito também conhecido por power harvesting ou energy sca-venging, é o processo pelo qual a energia do meio ambiente é capturada, convertida em energia elétrica e disponibilizada para uso de dispositivos eletrônicos. Alguns exemplos desses dispositi-vos são satélites, tablets, celulares e nós numa rede de sensores sem fio (HARROP; DAS, 2009). Além de gerar autonomia energética, o conceito de energy harvesting traz em si outros aspectos igualmente positivos como respeito ambiental, conveniência, confiabilidade e viabilidade de novas aplicações. Do ponto de vista prático, algumas aplicações já conquistaram seu espaço comercial, como automação industrial, automação residencial e iluminacão (ENOCEAN, 2014; ALLIANCE, 2014; JENNIC, 2014).

A Figura 2.3 a seguir exemplifica, sob uma perspectiva visionária, um ambiente ubíquo fundamentado no uso de energia solar (SILICONREEF, 2015).

(36)

2.2. ENERGY HARVESTING 35

Figura 2.3: Cenário de ambiente ubíquo fundamentado no uso de energia solar.

Fonte: SILICONREEF (2015).

O setor de automação industrial representou o primeiro grande mercado de aplicação desse conceito, onde mais de 500.000 (quinhentos mil) dispositivos de controle sem fio e sem bateria foram utilizados (HARROP; DAS, 2009). Hoje, a tecnologia de energy harvesting evoluiu do ponto de vista de performance e custo, tornando viável também sua utilização num conjunto de novas aplicações como:

 rede de sensores sem fio (WSN): em geral utilizadas em ambientes remotos e de

difícil acesso, como no caso da indústria e monitoramento ambiental, onde o custo com a utilização e substituição de baterias inviabilizaria o uso dessa redes. De uma maneira geral, 90% das aplicações com WSN seriam inviáveis sem o uso de energy harvesting(HARROP; DAS, 2009).

 micro-geração de energia elétrica: fornecimento de energia elétrica para alimentação

de dispositivos eletrônicos e iluminação na África, como por exemplo a empresa World Panel, e em outros locais onde não existe disponibilidade de energia elétrica para consumo da população (WORLD PANEL, 2015).

 sensores biomédicos: sensores usados para monitorar o funcionamento do corpo

humano, sendo grande foco de pesquisa no momento (ZHANG et al., 2014; KONG et al., 2015).

 dispositivos eletrônicos portáteis: o conceito de energy harvesting tem sido utilizado

para aumentar o tempo entre duas recargas em dispositivos portáteis como celulares e notebooks, garantindo maior disponibilidade para os seus usuários. Em 2011, a Samsung lançou no Brasil um netbook integrado com painel solar (modelo NC215). Segundo o anúncio, duas horas de exposição à luz solar são suficientes para gerar uma hora de autonomia (DIáRIO ONLINE - SAMSUNG, 2014).

(37)

2.2. ENERGY HARVESTING 36 A Tabela 2.1 a seguir apresenta a motivação para uso de energy harvesting para diferentes tipos de aplicações.

Tabela 2.1: Motivação para uso de EH por tipo de aplicação.

Celular, e-book, note-book

Conveniência: maior tempo entre duas recargas. Rede de sensores sem

fio

Aspecto ambiental e redução de custo: torna desnecessário o uso de baterias e consequente substituição das mesmas, principalmente em ambientes remotos e inóspitos como nos casos de monitora-mento florestal e sensores embarcados em máquinas e construções. Equipamento militar Disponibilidade operacional e segurança no seu uso.

Implantes médicos Proteção e redução de procedimentos intrusivos para substituição da bateria ou do equipamento como um todo.

Bens de consumo e em-balagens

Custo e apelo publicitário em relação ao perfil de consumo susten-tável.

Fonte: HARROP; DAS (2009).

A Figura 2.4 a seguir apresenta um conjunto de dispositvos e respectivos requisitos de consumo de energia, assim como o tipo de bateria utilizada.

Figura 2.4: Demanda de energia (power) por diferentes dispositivos eletrônicos.

Fonte: DRAYSON (2015).

Dispositivos eletrônicos, com alto volume de mercado, em geral variam do tamanho de um aparelho auditivo até a palma de uma mão, e para esses tamanhos a tecnologia atual de energy harvestingé capaz de prover, aproximadamente, um décimo da energia requerida. Nesses casos, baterias ainda são preferidas e devem ser substituídas ou recarregadas regularmente (HARROP; DAS, 2009). Para que a tecnologia de energy harvesting se torne realidade é preciso que haja

Referências

Documentos relacionados

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

Analisar os Relatórios de Frequência Escolar de crianças beneficiárias do Bolsa Família permitiu a identificação dos motivos registrados que levaram muitas crianças e

177 Em relação às funções sintáticas desempenhadas pelas estruturas inalienáveis, da mesma forma como acontece para os tipos de estruturas inalienáveis, é curioso o fato de que,

The challenge, therefore, is not methodological - not that this is not relevant - but the challenge is to understand school institutions and knowledge (school

5 CONSIDERAÇÕES FINAIS Este estudo teve como propósito apresentar o interesse de graduados do curso de Arquivologia, em relação à publicação de seus TCC’s após o término do

Desenvolver gelado comestível a partir da polpa de jaca liofilizada; avaliar a qualidade microbiológica dos produtos desenvolvidos; Caracterizar do ponto de

If teachers are provided with professional development opportunities that helps them develop a learning environment that is relevant to and reflective of students'

Sabe-se que as praticas de ações de marketing social tem inúmeras funções, dentre estas o papel de atuar na mudança de valores, crenças e atitudes, porém os alunos da