5 research outputs found

    Especialização e síntese de processadores para aplicação em sistemas de tempo-real

    Get PDF
    Doutoramento em Engenharia ElectrotécnicaA evolução da tecnologia microelectrónica ao longo das últimas décadas tem permitido um impressionante aumento da capacidade lógica dos circuitos integrados, sendo actualmente possível a construção de circuitos digitais complexos, específicos ou programáveis e integrados numa única pastilha. No final desta década será possível construir processadores e FPGAs com cerca de dez mil milhões de transístores. A utilização eficiente desta quantidade de recursos é um grande desafio cuja abordagem depende obviamente do domínio de aplicação. Os processadores superescalares actuais utilizam técnicas sofisticadas para atingir níveis elevados de desempenho, tais como a execução paralela de múltiplas instruções, superpipelining, execução especulativa, reordenação de instruções e hierarquias de memória complexas. Estas técnicas revelaram-se adequadas para melhorar o desempenho médio dos processadores para sistemas de uso geral mantendo ao mesmo tempo a compatibilidade, ao nível do modelo de programação, com os processadores escalares convencionais. No entanto, a sua implementação requer uma quantidade de recursos apreciável e coloca grandes desafios ao nível da validação e teste dos respectivos processadores. Estes processadores também consomem e dissipam quantidades consideráveis de energia e não apresentam um desempenho determinístico. O aumento da capacidade computacional e a redução do tamanho levaram a que os sistemas com microprocessadores passassem a estar presentes (ou embutidos) em muitos dos equipamentos e aplicações do dia-a-dia, tais como os transportes, as telecomunicações, os sistemas de segurança, a automação industrial, etc. Devido à interacção entre estes sistemas e o ambiente, estas aplicações possuem requisitos de operação em tempo-real que se não forem cumpridos podem provocar graves danos humanos e materiais. Por este motivo, os sistemas de tempo-real requerem abordagens de projecto específicas de forma a assegurar um comportamento funcional e temporalmente correcto. No entanto, por questões económicas, nas aplicações embutidas são muitas vezes utilizados componentes dos sistemas computacionais de uso geral. Em particular, em sistemas embutidos de tempo-real são frequentemente usados processadores de uso geral, o que pode levantar alguns problemas, principalmente devido à sua ineficiência energética e ao seu desempenho não determinístico. Assim, é necessário adoptar técnicas de projecto, por vezes muito conservativas, de forma a garantir um comportamento correcto mesmo nas situações mais desfavoráveis. A complexidade crescente dos sistemas e a necessidade de reduzir o seu tempo de projecto, tem levado a uma utilização crescente de executivos e sistemas operativos multi-tarefa, os quais implementam camadas de abstracção do hardware e disponibilizam um conjunto de serviços que reduzem o tempo de desenvolvimento. No entanto, estas camadas intermédias de software consomem tempo de processamento e são também elas próprias por vezes uma fonte de não determinismo. Nesta dissertação são discutidas ideias, apresentadas arquitecturas e avaliadas implementações de modelos para a especialização e síntese de processadores para aplicação em sistemas embutidos de tempo-real multi-tarefa que exploram eficientemente a capacidade de integração e a flexibilidade proporcionada pelas FPGAs actuais. O objectivo deste trabalho é validar a seguinte tese: Um processador adequado para sistemas embutidos de tempo-real multi-tarefa deve apresentar um desempenho determinístico, ser eficiente do ponto de vista energético, assim como proporcionar, através de hardware especializado, o suporte adequado para este tipo de aplicações. Tal processador pode ser construído com base numa estrutura mais simples e uma quantidade de recursos de hardware inferior à dos processadores de uso geral actuais, sendo portanto mais simples de validar e implementar. A utilização de modelos sintetizáveis e parametrizáveis e sua implementação em dispositivos lógicos programáveis torna possível a construção de processadores à medida da aplicação alvo. As principais contribuições originais desta dissertação são a concepção de arquitecturas e modelos sintetizáveis de um processador pipelined multi-tarefa determinístico e respectivo coprocessador para suporte do sistema operativo de tempo-real. O ponto de partida deste trabalho foi a elaboração de um modelo criado de raiz para implementação da arquitectura MIPS32 em FPGA. Esse modelo, denominado ARPA-CP (Advanced Real-time Processor Architecture - with Configurable Pipeline) é parametrizável, sintetizável e independente da tecnologia. O modelo do processador pipelined ARPA-CP foi estendido com capacidades de multi-tarefa simultânea (Simultaneous Multithreading) resultando no processador ARPA-MT (ARPA - MultiThreaded), também implementado e prototipado em FPGA. A utilização de técnicas de multi-tarefa simultânea visa essencialmente melhorar o desempenho dos processadores destinados a sistemas de tempo-real multi-tarefa sem recorrer a técnicas de execução especulativa, mantendo portanto o desempenho determinístico. No âmbito deste doutoramento foi também concebido e projectado o coprocessador ARPA-OSC (ARPA - Operating System Coprocessor), para implementação em hardware dos mecanismos básicos de um sistema operativo de tempo-real, nomeadamente, a temporização, o escalonamento de tarefas, o controlo de acesso a recursos partilhados, a comutação de tarefas em execução, a verificação do cumprimento das restrições temporais e o atendimento de interrupções. A avaliação do desempenho deste coprocessador mostrou que a sua utilização permite obter reduções de uma a duas ordens de grandeza e valores mais determinísticos do tempo de execução de algumas das funções do executivo de tempo-real OReK, desenvolvido para abstrair e proporcionar uma interface de programação adequada do coprocessador ARPA-OSC. Todas as arquitecturas concebidas no âmbito deste trabalho foram modeladas ao nível RTL com a linguagem de descrição de hardware VHDL. Os modelos construídos são independentes da tecnologia e parametrizáveis de forma a que certos aspectos possam ser modificados durante a fase de síntese e implementação com ferramentas de projecto assistido por computador. A sua prototipagem foi realizada em FPGAs da Xilinx.The continuous evolution of the microelectronics technology during the last decades has allowed an impressive growth of the logic capacity that can be integrated on a single chip. It is now possible to manufacture complex digital circuits fully integrated on application specific or field programmable devices. By 2010 it will be possible to build processors and FPGAs containing about 10 thousand million transistors on a single chip. The efficient use of this huge transistor budget is a challenge being the approach highly dependent on the application domain. Current superscalar processors employ sophisticated techniques to achieve high levels of performance, such as parallel instruction issue, superpipelining, prediction, speculation, out-of-order execution and complex memory hierarchies. These techniques proved themselves very effective to improve the average performance of general purpose processors, being at the same time backward compatible and maintaining the programming model and sequential execution semantics of the conventional scalar processors. However, their implementation requires complex architectures and considerable hardware resources with the inherent time consuming validation and test procedures. Those processors also consume large amounts of power and exhibit a non deterministic performance. The improvement of computational power and the size reduction have allowed the utilization (or embedding) of microprocessor based systems within many equipments and real world applications such as transportation, telecommunications, security, industrial automation, etc. Due to the close interaction between these systems and the surrounding environment, this class of applications has real-time operation constraints that must be fulfilled or serious human and material injuries can occur otherwise. Thus, real-time systems require specific design approaches to ensure correct functional and timing behaviors. However, economical reasons motivate the use of commercially available of the shelf and general purpose components in the design of embedded systems. In particular, general purpose processors are often used in real-time embedded systems which can cause several problems, mainly due to its power inefficiency and non deterministic performance. For this reason it is necessary to adopt design techniques, sometimes very conservative, to ensure a correct behavior even under worst case conditions. The raising complexity of systems and the ever shrinking time to market led to an increasing use of existing frameworks, middlewares, multitasking executives and real-time operating systems, which implement abstraction layers and provide a set of services that reduce design time. However, these software layers require processing time, reducing the processor time available for the application and sometimes are also a source of non determinism. This dissertation discusses ideas, presents architectures and evaluates implementations of customizable and synthesizable processor models optimized for multitasking real-time embedded systems, which explore efficiently the integration capacity and flexibility provided by current FPGAs. The main goal of this work is to validate the following thesis: A processor optimized for multitasking embedded systems must exhibit a deterministic performance, be energy efficient, as well as provide, through specialized hardware, the adequate support for this class of applications. Such a processor can be based on a simpler structure and built with less hardware resources than general purpose processors, being easier to validate and to implement. The use of synthesizable and parameterizable models and their implementation in field programmable logic devices make possible the construction of processors customized for the target application. The main original contributions of this Ph.D. are the conception of architectures and synthesizable models for a deterministic, multitasking, pipelined processor and the respective coprocessor for real-time operating system support. The starting point of this work was the elaboration of a model created from scratch for FPGA implementation of the MIPS32 architecture. This model, named ARPA-CP (Advanced Real-time Processor Architecture - with Configurable Pipeline), is parameterizable, synthesizable and technology independent. The ARPA-CP pipelined processor model was extended with Simultaneous MultiThreading (SMT) capabilities, resulting in the ARPA-MT (ARPA - MultiThreaded) processor, also implemented and prototyped in FPGA. The motivation for using SMT techniques is the improvement of the processor performance for multitasking real-time systems without employing prediction or speculative execution techniques, keeping the performance deterministic. In the scope of this work it was also created and designed the ARPA-OSC coprocessor (ARPA - Operating System Coprocessor), for hardware implementation of basic real-time operating system functions, such as timing, task scheduling, synchronization for accessing shared resources, task switching, verification of timing constraints and interrupt servicing. The hardware implementation of these functions allows executing them in less time and in a more predictable manner when compared with a software implementation, reducing the overhead of operating system execution. The performance evaluation of this coprocessor has shown reductions of one to two orders of magnitude in the execution time of some of the functions of the OReK real-time executive, developed to provide an adequate application programmable interface for the ARPA-OSC coprocessor. All architectures were modelled at RTL level using VHDL. The models built are technology independent and parameterizable to allow the modification of several parameters during the synthesis phase using CAD/CAE tools. The prototyping was performed with Xilinx FPGAs.FCTFS

    Executivo de tempo-real para processadores embutidos em FPGA

    Get PDF
    Mestrado em Engenharia Electrónica e TelecomunicaçõesDevido `a grande evolu¸c˜ao da tecnologia microelectr´onica ao longo das ´ultimas d´ecadas, actualmente ´e poss´ıvel a constru¸c˜ao de circuitos integrados extremamente complexos, contendo diversas centenas de milh˜oes de trans´ıstores. Este facto tornou o conceito de sistema integrado uma realidade. Uma das consequˆencias da evolu¸c˜ao da tecnologia foi a disponibiliza ¸c˜ao de dispositivos l´ogicos complexos reconfigur´aveis como as FPGAs. Tais dispositivos permitem o desenvolvimento de sistemas integrados, com a vantagem de possibilitarem uma r´apida fase de prototipagem. A crescente capacidade computacional e a redu¸c˜ao do tamanho levaram a que os microprocessadores passassem a estar embutidos em muitos dos equipamentos e aplica¸c˜oes do quotidiano. Dependendo da aplica¸c˜ao que o sistema embutido ir´a desempenhar, pode existir a necessidade da sua execu¸c˜ao em intervalos de tempo bem definidos, e um atraso temporal na resposta a um determinado est´ımulo pode significar o colapso no controlo de todo um processo. Tais sistemas possuem restri¸c˜oes de tempo-real e requerem abordagens de concep¸c˜ao adequadas para o seu correcto funcionamento. A grande motiva¸c˜ao para a realiza¸c˜ao deste trabalho consistiu na possibilidade de integrar num ´unico dispositivo f´ısico reconfigur´avel, todos os componentes de uma arquitectura computacional especializada para sistemas de tempo-real, ou seja, integrar processador, mem´oria, perif´ericos, executivo de tempo-real e aplica¸c˜ao, num ´unico dispositivo f´ısico. Nesta disserta¸c˜ao s˜ao discutidas ideias, apresentadas arquitecturas e avaliadas implementa¸c˜oes de um executivo de tempo-real para processadores embutidos em FPGA. O principal objectivo deste trabalho consiste em integrar e avaliar um executivo de tempo-real embutido em FPGA. O ponto de partida deste trabalho foi a constru¸c˜ao de um sistema integrado em FPGA, recorrendo `as ferramentas de desenvolvimento Xilinx EDK (Embedded Development Kit). O sistema desenvolvido, designado por MB-SoC (MicroBlaze - System-on-Chip), re´une um conjunto de perif´ericos, dispositivos de entrada/sa´ıda, mem´oria e o processador sintetiz´avel MicroBlaze implementado em blocos l´ogicos configur´aveis da FPGA. Posteriormente foi ainda desenvolvido um segundo sistema, designado por PPC-SoC (PowerPC 405 - SoC). Este ´e idˆentico ao anterior, mas utiliza um processador de alto desempenho, implementado em l´ogica dedicada e interno `a FPGA. O executivo de tempo-real OReK (Object-oriented Real-time Kernel) foi portado, no ˆambito deste trabalho, para os sistemas integrados desenvolvidos, MB-SoC e PPC-SoC. Os resultados da avalia¸c˜ao efectuada permitem analisar as vantagens e as desvantagens, associadas `as diversas implementa¸c˜oes. ABSTRACT: Due to the great development of microelectronics technology over recent decades, today it is possible the construction of extremely complex integrated circuits, containing several hundred million transistors. This made the System-on-Chip concept a reality. One of the consequences of the evolution of technology was the provision of complex logic devices such as reconfigurable FPGAs. Such devices allow the System-on-Chip development with the advantage of allowing a rapid prototyping phase. The increasing computational capacity and the reduction of the size led the microprocessors to be embedded in many of the equipment and applications in everyday life. Depending on the application that the embedded system will do, there may be a need for execution at well defined intervals of time, and a time delay in responding to a stimulus can mean the collapse in control of an entire process. Such systems have real-time restrictions and require appropriate design approaches for the proper functioning. The major motivation for this work was the possibility of integrating into a single physical reconfigurable device, all components of an computational architecture specialized for real-time systems. In this dissertation ideas are discussed, presented architectures and evaluated implementations of a real-time executive for embedded processors in FPGA. The main objective of this work is to integrate and evaluate an executive of real-time, embedded in FPGA. The starting point of this work was the construction of an FPGA System-on- Chip, using the development tools named Xilinx EDK (Embedded Development Kit). The developed system, named MB-SoC (MicroBlaze - Systemon- Chip), gathers a set of peripherals, input/output devices, memory and the soft-core MicroBlaze processor implemented in FPGA configurable logic blocks. Later was developed a second system, named PPC-SoC (PowerPC 405 - SoC). This is identical to the previous, but uses an high performance processor, implemented in dedicated logic and internal to the FPGA. The real-time executive OReK (Object-oriented Real-time Kernel) was ported, within this work, to the developed integrated systems, MB-SoC and PPC-SoC. The results of the evaluation can analise the advantages and the disadvantages, associated to the various implementations

    Co-processador de hardware para o executivo de tempo-real OReK

    Get PDF
    Mestrado em Engenharia de Computadores e TelemáticaEsta dissertação, apresenta a implementação de um co-processador de utilização genérica para o executivo de tempo-real OReK. Ao longo dos 5 capítulos que constituem esta dissertação, são apresentados os objectivos do trabalho, são relembrados alguns conteúdos teóricos que fazem parte do desenvolvimento do projecto, são apresentados todos os constituintes do co-processador explicando o seu funcionamento, sendo por fim demonstrado através da avaliação temporal, como a utilização de um co-processador para aceleração das funcionalidades de um executivo de tempo-real, poderá efectivamente melhorar o seu desempenho e determinismo. Os objectivos principais deste trabalho passam por, estudar as ferramentas e plataformas necessárias ao seu desenvolvimento, especificar e projectar a arquitectura do co-processador assim como todas as suas funcionalidades internas, adaptação do executivo OReK para albergar o funcionamento em conjunção com o co-processador desenvolvido, sendo por fim, feita a validação e avaliação do sistema. Através dos resultados da avaliação do sistema com a utilização do coprocessador, é demonstrado que existe um forte melhoramento do determinismo e também do desempenho do executivo OReK. No entanto,é também demonstrado como estes resultados podem ser postos em causa, caso exista uma elevada latência, na interligação entre o processador e o co-processador, o que pode atrasar a execução de todo o sistema, podendo até mesmo prejudica-lo. Todos estes aspectos são estudados, desenvolvidos e explicados ao longo desta dissertação. ABSTRACT: This Master Thesis, presents the implementation of a generic use coprocessor for the real-time kernel OReK. For the next 5 chapters, which constitute this thesis, the work objectives are presented, the necessary theoretical contents for the project development are remembered, the coprocessor internal constitution is presented and explained, and in the end, it is demonstrated through temporal evaluation that, the use of a coprocessor can in fact, accelerate the real-time kernel functions, improving it’s performance and determinism. This work main objectives are, to study the tools and platforms necessary for the project development, specify and develop the coprocessor architecture with all the necessary internal functions, OReK kernel adaptation in order to use the coprocessor, and in the end, to validate and test the system. The system evaluation results, using the coprocessor, demonstrated the existence of a serious improvement in the determinism and performance of the OReK kernel. Meanwhile, it is also demonstrated how these results can be rendered useless, if there is a high latency in the connection between the main processor and the coprocessor, which can delay the system execution and even harming it. All of these aspects are studied, developed and explain in the course of this master thesis

    A TrustZone-assisted secure silicon on a co-design framework

    Get PDF
    Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresEmbedded systems were for a long time, single-purpose and closed systems, characterized by hardware resource constraints and real-time requirements. Nowadays, their functionality is ever-growing, coupled with an increasing complexity and heterogeneity. Embedded applications increasingly demand employment of general-purpose operating systems (GPOSs) to handle operator interfaces and general-purpose computing tasks, while simultaneously ensuring the strict timing requirements. Virtualization, which enables multiple operating systems (OSs) to run on top of the same hardware platform, is gaining momentum in the embedded systems arena, driven by the growing interest in consolidating and isolating multiple and heterogeneous environments. The penalties incurred by classic virtualization approaches is pushing research towards hardware-assisted solutions. Among the existing commercial off-the-shelf (COTS) technologies for virtualization, ARM TrustZone technology is gaining momentum due to the supremacy and lower cost of TrustZone-enabled processors. Programmable system-on-chips (SoCs) are becoming leading players in the embedded systems space, because the combination of a plethora of hard resources with programmable logic enables the efficient implementation of systems that perfectly fit the heterogeneous nature of embedded applications. Moreover, novel disruptive approaches make use of field-programmable gate array (FPGA) technology to enhance virtualization mechanisms. This master’s thesis proposes a hardware-software co-design framework for easing the economy of addressing the new generation of embedded systems requirements. ARM TrustZone is exploited to implement the root-of-trust of a virtualization-based architecture that allows the execution of a GPOS side-by-side with a real-time OS (RTOS). RTOS services were offloaded to hardware, so that it could present simultaneous improvements on performance and determinism. Instead of focusing in a concrete application, the goal is to provide a complete framework, specifically tailored for Zynq-base devices, that developers can use to accelerate a bunch of distinct applications across different embedded industries.Os sistemas embebidos foram, durante muitos anos, sistemas com um simples e único propósito, caracterizados por recursos de hardware limitados e com cariz de tempo real. Hoje em dia, o número de funcionalidades começa a escalar, assim como o grau de complexidade e heterogeneidade. As aplicações embebidas exigem cada vez mais o uso de sistemas operativos (OSs) de uso geral (GPOS) para lidar com interfaces gráficas e tarefas de computação de propósito geral. Porém, os seus requisitos primordiais de tempo real mantém-se. A virtualização permite que vários sistemas operativos sejam executados na mesma plataforma de hardware. Impulsionada pelo crescente interesse em consolidar e isolar ambientes múltiplos e heterogéneos, a virtualização tem ganho uma crescente relevância no domínio dos sistemas embebidos. As adversidades que advém das abordagens de virtualização clássicas estão a direcionar estudos no âmbito de soluções assistidas por hardware. Entre as tecnologias comerciais existentes, a tecnologia ARM TrustZone está a ganhar muita relevância devido à supremacia e ao menor custo dos processadores que suportam esta tecnologia. Plataformas hibridas, que combinam processadores com lógica programável, estão em crescente penetração no domínio dos sistemas embebidos pois, disponibilizam um enorme conjunto de recursos que se adequam perfeitamente à natureza heterogénea dos sistemas atuais. Além disso, existem soluções recentes que fazem uso da tecnologia de FPGA para melhorar os mecanismos de virtualização. Esta dissertação propõe uma framework baseada em hardware-software de modo a cumprir os requisitos da nova geração de sistemas embebidos. A tecnologia TrustZone é explorada para implementar uma arquitetura que permite a execução de um GPOS lado-a-lado com um sistemas operativo de tempo real (RTOS). Os serviços disponibilizados pelo RTOS são migrados para hardware, para melhorar o desempenho e determinismo do OS. Em vez de focar numa aplicação concreta, o objetivo é fornecer uma framework especificamente adaptada para dispositivos baseados em System-on-chips Zynq, de forma a que developers possam usar para acelerar um vasto número de aplicações distintas em diferentes setores
    corecore