5 research outputs found
The Ravenscar-compliant hardware run-time (Ravenhart) kernel
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Aeronautics and Astronautics, 2004.Includes bibliographical references (leaves 69-71).Real-time embedded systems are increasingly becoming the foundation of control systems in both the aerospace and automotive worlds. This class of systems has to meet three requirements: strict timing constraints on operational behavior, limited resource availability, and stringent certification standards. The heart of any embedded system is its run-time system (RTS), which provides resource management, task creation and deletion, and manages inter-task communication. The traditional Ada RTS does not provide deterministic behavior. In order to meet the requirement of a minimal, deterministic RTS, a formal model based on the Ravenscar profile of Ada95 was developed by Professor Kristina Lundqvist in 2000. This formal model forms the basis of the work carried out in this thesis. This thesis aims to leverage the reliability and efficiency of programmable hardware to implement a run-time kernel called RavenHaRT. The kernel was designed to support Ravenscar compliant Ada95 code and provides task creation, task scheduling and inter-task communication capabilities. The timing properties embedded in the formal model are captured in terms of kernel performance within the hardware. The kernel was implemented using a Xilinx Virtex-II Pro FPGA. The results from testing demonstrate that the hardware kernel has the expected behavior and can interface correctly with software code.by Anna Silbovitz.S.M
A TrustZone-assisted secure silicon on a co-design framework
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
Especialização e síntese de processadores para aplicação em sistemas de tempo-real
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