5 research outputs found
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
Executivo de tempo-real para processadores embutidos em FPGA
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
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
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