Desenvolvimento de um inovador microkernel por hardware para microcontroladores focando nas aplicações de sistemas baseados em tarefas
Description
Nesse projeto de pesquisa de doutorado foi desenvolvida uma inovadora abordagem de hardware, com objetivo de aumentar o desempenho dos sistemas baseados em tarefas, que se utilizam de microcontroladores com um único núcleo. Para isso um microkernel foi desenvolvido em hardware e precisamente interconectado à CPU e à memória de dados de um microcontrolador Plasma. Seu papel é operar paralelamente à CPU, realizando por hardware o escalonamento e o despacho de tarefas. Essa abordagem tende a minimizar o tempo gasto para trocas das tarefas que devem ser executadas pela CPU. Além disso, a arquitetura desenvolvida não impacta na forma como as instruções são executadas e adiciona apenas um único banco de registradores ao hardware da CPU. Sendo assim, ela é adequada tanto para a aplicação em dispositivos de hardware programável, como também para a implementação de circuitos integrados dedicados (Application-Specific Integrated Circuit, ASIC). Os resultados experimentais obtidos, quando o dispositivo proposto foi sintetizado em um Field Program Gate Array (FPGA), mostram que é possível realizar trocas de tarefas em até 2 ciclos de clock, que representa uma redução em até 99% do tempo médio gasto em relação aos sistemas convencionais, no qual o microkernel é desenvolvido por software. Além disso, o desempenho do microcontrolador modificado se mantém estável mesmo quando o tempo entre trocas de tarefas é menor que 100 µs, considerando uma frequência de clock de 25 MHz, ao passo que, na abordagem por software, o desempenho em processamento é degradado em até 79% em relação ao máximo observado quando a troca de tarefas ocorre em períodos superiores a 10 ms. Do ponto de vista energético, o microkernel por hardware proposto foi analisado a partir do leiaute gerado automaticamente utilizando-se as ferramentas da CADENCE para fabricação de um ASIC, e os resultados mostram que ele consome apenas 7% da potência elétrica dinâmica do microcontrolador. Além disso, os resultados obtidos por esse projeto de pesquisa fortalecem a ideia que essa abordagem inovadora possibilita aplicações que demandam tempos curtos entre trocas de tarefas, tais como aqueles que demandam intenso processamento de entradas e saídas (comunicação serial de dados, controle de motores e codificação/decodificação de áudio) e aplicações de alta tecnologia (clusters de máquinas virtuais em plataformas de nuvem).In this doctoral research project was developed an innovative hardware approach, aiming to increase the performance of the task-based systems, which use microcontrollers with a single core. For this, a microkernel was developed in hardware and precisely interconnected to the CPU and the data memory of a Plasma microcontroller. Its role is to operate parallel to the CPU, performing hardware scheduling and dispatching tasks. This approach tends to minimize the time spent to switch the tasks that must be executed by the CPU. In addition, the architecture developed does not impact how the instructions are executed and adds only a single register bank to the CPU hardware. Therefore, it is ideal for use in programmable hardware devices, as well as in the implementation of application-specific integrated circuits (ASICs). The experimental results obtained, when the proposed device was synthesized in a Filed Program Gate Array (FPGA), show that it is possible to carry out task switches in up to 2 clock cycles, representing a reduction of up to 99% in the average time spent compared to conventional systems, where the microkernel is developed by software. In addition, the performance of the modified microcontroller remains stable even when the time between task switches is shorter than 100 µs, considering a clock frequency of 25 MHz, whereas, in the software approach, the performance in processing is degraded in up to 79% in relation to the maximum observed when the task switches occur in periods longer than 10 ms. From the energy point of view, the proposed hardware microkernel was analyzed from the layout automatically generated using Cadence tools for the manufacture of an ASIC, and the results show that it consumes only 7% of the dynamic electrical power of the microcontroller. In addition, the results obtained by this research project reinforce the idea that this innovative approach allows applications that require short times between task switches, such as those related to I/O-intensive processing (the serial data communication, motor control, and audio coding/decoding) and high-end applications (clusters of virtual machines on cloud platforms).