Universidade do Minho Escola de Engenharia Virgílio André Mendes Cunha Hardware Thread Model For FPGA Accelerated FreeRTOS A G P F r o F l e dS oO MT d eR ae er rF Thd e te ra ar we del rc ac HA a h n u C s e d n e M é r d n A o gíli r Vi 6 1 0 2 | o h n Mi U outubro de 2016 Universidade do Minho Escola de Engenharia Virgílio André Mendes Cunha Hardware Thread Model For FPGA Accelerated FreeRTOS Dissertação de Mestrado Ciclo de Estudos Integrados Conducentes ao Grau de Mestre em Engenharia Electrónica Industrial e Computadores Trabalho efetuado sob a orientação do Professor Doutor Adriano José da Conceição Tavares outubro de 2016 Agradecimentos Gostaria de agradecer ao meu orientador Professor Doutor Adriano Tavares, pelo apoio e partilha de conhecimento e pela motivação dada. Um agradecimento especial ao Mestre Vítor Silva por estar sempre disponível a ajudar, apoiar e partilhar o seu conhecimento. À minha mãe e irmãos, Maria Conceição Mendes, Hélder Cunha e Cátia Cunha, pelo apoio, compreensão, por estarem sempre presentes e acreditarem em mim. À minha namorada, Andreia Amorim, pela força dada, transmissão de motivação nos momentos mais difíceis e por ser um exemplo de força a seguir. Porfimgostariadeagradecertodososmeusamigosecolegasdelaboratório, Sergey Zubchevskyy, Carlos Fernandes, Diogo Lima, César Monteiro, Nelson Naia, Fábio Cunha, João Gonçalves, Marcelo Sousa e Ricardo Teixeira, pela amizade e por estarem sempre disponíveis a ajudar. i ii Resumo Um sistema embebido é um sistema computacional, especificamente desenhado para o desempenho de um conjunto de tarefas restrito, sendo este normalmente um subsistema de um sistema maior e muitos destes sistemas recorrem à utiliza- ção de sistemas operativos, uma vez que estes promovem uma gestão eficiente dos recursos, oferecendo um conjunto de serviços para além de suporte e abstração de hardware, promovendo a portabilidade e a reutilização. Existem sistemas que enfrentam restrições temporais, sobre as quais o incumprimento de um deadline pode comprometer a integridade e a funcionalidade do sistema, estes são sistemas vulgarmente conhecidos como sistemas de tempo real ou com requisitos de tempo real e para este tipo de sistemas existem sistemas operativos específicos que visam o cumprimento destes requisitos, favorecendo a previsibilidade e o determinismo. A redução do overhead computacional, paralelização e o offloading de computação para dispositivos como o FPGA, são apontadas como medidas complementares. Com esta dissertação pretende-se implementar um modelo de tarefas de hardware e alguns serviços do sistema operativo FreeRTOS em hardware dedicado, tirando partido do paralelismo natural que o hardware oferece e da sua natureza deter- minística, nomeadamente o gestor de tarefas, escalonador, temporizador e contro- lador de interrupções, toda a implementação deve seguir o modelo implementado pelo sistema operativo tornando a implementação o mais transparente possível, por forma a favorecer a migração de tarefas de software para o FPGA. Com esta implementação serão criadas duas novas arquiteturas do sistema em que o utili- zador poderá selecionar a mais pertinente ao projeto a ser implementado, sendo que o sistema dará então a possibilidade de usar o sistema operativo somente a ser executado em software ou correr o sistema operativo com os serviços migrados em hardware, ou escolher utilizar o sistema operativo em software com recurso a tarefas em hardware. iii iv Abstract An embedded system is a computer system specifically designed for the perfor- mance of a restricted set of tasks, which is typically a subsystem of a larger system, and many of these systems involve the use of operating systems, since these pro- mote efficient resource management offering a range of services as well as support and hardware abstraction, promoting the portability and reuse. There are systems that have time constraints, on which the failure of a deadline can compromise the integrity and functionality of the system, these are systems known as real-time systems or real-time requirements and such systems are specific operating systems aimed at meeting these requirements, favoring the predictability and determinism. The reduction of computational overhead, parallelization and offloading compu- ting to devices such as FPGA, are seen as complementary measures. With this dissertation aims to implement a hardware thread model and implementation of some operating system services FreeRTOS on dedicated hardware, taking advan- tage of the natural parallelism that the hardware provides and its deterministic nature, including the task manager, scheduler, timer and interrupt controller, the entire implementation should follow the model implemented by the operating sys- tem making the most transparent possible implementation, in order to promote the migration of software tasks to the FPGA. With this implementation will cre- ate two new system architectures that the user can select the most relevant to the project to be implemented, and the system will then give the possibility to use the operating system only to be executed in software or run the operating system with services migrated to hardware, or choose to use the operating system software using the tasks in hardware. v vi Conteúdo 1 Introdução 1 1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Motivação e Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Organização da Dissertação . . . . . . . . . . . . . . . . . . . . . . 3 2 Estado da Arte 5 2.1 Sistemas Embebidos . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Sistemas Operativos e Tempo Real . . . . . . . . . . . . . . . . . . 6 2.2.1 Comparação de Sistemas Operativos de Tempo Real . . . . . 8 2.2.2 Sistemas Operativos Acelerados em Hardware . . . . . . . . 9 2.3 Tecnologia FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Plataforma de Desenvolvimento SmartFusion Evaluation Kit . . . . 15 2.5 Libero SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.1 Libero SoC v11.5 . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.2 SoftConsole IDE v3.4 . . . . . . . . . . . . . . . . . . . . . . 19 3 Sistema Operativo de Suporte FreeRTOS 21 3.1 Visão Global Sobre a Organização . . . . . . . . . . . . . . . . . . . 21 3.2 Tarefas e a Sua Gestão . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Listas de Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4 Escalonamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Cenário de Aplicação 33 4.0.1 Advanced Encryption Standard . . . . . . . . . . . . . . . . 33 5 Tarefas de Hardware e FreeRTOS Acelerado em Hardware 41 5.1 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 Visão Global do Sistema . . . . . . . . . . . . . . . . . . . . . . . . 42 vii
Description: