4 research outputs found
A Catalog of Hardware Acceleration Techniques for Real-Time Reconfigurable System on Chip
The new technology of reconfigurable System-on-Chip is shown to be a good match to the requirements of real-time embedded systems. In particular, the judicious use of specialised data processing peripherals can reduce the CPU load significantly and greatly ease the task of guaranteeing that real-time deadlines are met in complex multi-processing real-time systems. A catalog of other possible uses for the reconfigurable logic resources on such a chip which can assist in improving real-time system performance is also presented
Egret: A platform for reconfigurable system-on-chip
Reconfigurable System-on-Chip (rSoC) design is inherently a complex task with enormous freedom in design parameters such as processor, operating system, and backplane buses. Design efficiency can be improved by the use of an rSoC platform which constrains these choices, and allows new designs to leverage much of the expertise of previous designs. Egret is an rSoC prototyping platform being developed at the University of Queensland, Australia, and this paper explains and justifies the design decisions for the first version of Egret
The Egret Platform For Reconfigurable System-On-Chip Proceedings. 2003 IEEE International Conference on Field-Programmable Technology (FPT), 2003.
Embedded systems are an appealing application domain for reconfigurable System-on-Chip (rSoC)technology. However, rSoC design is inherently a complex task with enormous freedom in design parameters such as processor, operating system, and backplane buses. Design efficiency can potentially be improved by the use of an rSoC platform which constrains these choices, and allows new designs to leverage much of the expertise of previous designs. This paper explains and justifies the design decisions for the first version of Egret, which is an rSoC prototyping platform being developed at the University of Queensland, Australia
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