Proposta de arquitetura de alto desempenho para sistemas de tempo real - Siqueira, Hadley Magno da Costa (2020)
Precision Timed Machines (PRET) são arquiteturas voltadas para o uso em sistemas embarcados de tempo real e sistemas cyber-físicos. A principal característica dessas arquiteturas é a capacidade de prover previsibilidade e repetibilidade para tarefas de tempo real, facilitando assim o desenvolvimento, análise e teste de sistemas de tempo real. O estado da arte, no momento dessa escrita, consiste em um conjunto de processadores baseados no conceito PRET. Esses processadores tem como uma das principais características o uso de threads em hardware com chaveamento das mesmas a cada ciclo de relógio. Essa estratégia provê um bom desempenho quando há paralelismo a nível de thread, porém induz a um baixo desempenho na falta desse paralelismo. Além disso, o chaveamento das threads a cada ciclo de relógio leva a uma latência alta. Essa latência alta pode inviabilizar a execução de tarefas que requeiram baixa latência. O presente trabalho contribui para o estado da arte de duas formas: a primeira é apresentando uma proposta de um array reconfigurável de grão grosso baseado no conceito PRET. O array proposto é acoplado a um processador PRET, provendo suporte para aceleração de trechos importantes de uma aplicação. O array foi projetado de tal forma que quando acoplado ao processador não faça este perder suas propriedades temporais originais. A segunda contribuição desta tese é a proposta e implementação de uma arquitetura multicore. Cada core é composto por um processador acoplado ao array proposto. Dessa forma, este trabalho procura apresentar uma arquitetura de alto desempenho voltado para sistemas embarcados de tempo real que tenham alta demanda de processamento tais como na aviônica, por exemplo. Resultados mostram que a arquitetura proposta é capaz de prover aceleração de mais de 10 vezes para alguns tipos de aplicação. Em termos de área, resultados de síntese para FPGA mostram que cada core ocupa menos da metade de um processador com execução fora de ordem. Além disso, possui área similar a outros arrays usados em sistemas embarcados low-power.