Content area
O constante crescimento do número de dispositivos conectados à Internet of Things (IoT), assim como a expansão das áreas de aplicação IoT está a condicionar cada vez mais a forma como estes dispositivos operam. No edge da rede existem dispositivos de baixo custo que processam workloads com crescente complexidade enquanto atendem a rigorosas restrições temporais, simultaneamente necessitando de reduzir o consumo energético, o tamanho físico e requisitos de memória. A tecnologia Field-Programmable Gate Array (FPGA) surge como uma alternativa, uma vez que proporciona desempenho e determinismo ao migrar tarefas de software para o hardware.
Contudo, a aceleração por hardware tem encontrado resistência significativa na indústria da IoT. Aceleradores em hardware são frequentemente implementados com o objetivo de acelerar uma única aplicação, limitando o número de sistemas em que um dado acelerador pode ser integrado. Como consequência, estes aceleradores impõem curvas de aprendizagem acentuadas, que por sua vez, atrasam o tempo de entrada no mercado. Assim, para que haja uma adoção generalizada de aceleradores em hardware na IoT, é essencial desenvolver soluções agnósticas que possam ser aplicadas a um espectro alargado de sistemas sem exigir conhecimento aprofundado do acelerador aos desenvolvedores.
Neste sentido, esta tese propõe a framework ChamelIoT, uma framework agnóstica para aceleração em hardware de Sistemas Operativos (SOs) para a IoT, que aproveita a ubiquidade destes SOs para maximizar a adoção de aceleração em hardware na IoT. O ChamelIoT implementa um acelerador em hardware altamente adaptável que, em combinação com uma ferramenta user-friendly de alto nível, possibilita a implementação de uma pilha de sistema completa para vários SOs da IoT acelerados por hardware.
Ao longo desta tese os artefactos desenvolvidos demonstram: (1) quais são as características dos SOs da IoT necessárias para migrar serviços do kernel para hardware; (2) de que forma diferentes SOs da IoT podem ser melhorados por um acelerador em hardware suportado por uma framework dedicada; (3) como diferentes abordagens de acoplamento impactam o desempenho de um acelerador e que trade-offs existem entre diferentes tipos de configurações; e, finalmente, (4) qual é a influência da aceleração de serviços de kernel nas métricas de rede de um controlador industrial da IoT.