1 |
[en] A CONTENT ADDRESSABLE MEMORY BASED ARCHITECTURE TO SUPPORT A PROLOG VIRTUAL MACHINE / [pt] UMA ARQUITETURA BASEADA EM MEMÓRIA ASSOCIATIVA PARA SUPORTE A UMA MÁQUINA VIRTUAL PROLOGMALENA OSORIO HOR-MEYLL 12 November 2009 (has links)
[pt] As arquiteturas convencionais de computadores, baseadas no modelo de Von Neumann, não implementam eficientemente a linguagem Prolog, fundamentada em mecanismos de unificação e retrocesso automático. Este trabalho propõe a arquitetura de um acelerador, baseado a uma máquina virtual Prolog (PLM) desenvolvida na COPPE/UFRJ. A arquitetura proposta aumenta a eficiência da máquina virtual explorando o paralelismo da memória associativa na realização do mecanismo de retrocesso. O impacto no desempenho da máquina virtual decorrente da nova arquitetura foi avaliado por simulação utilizando programas clássicos encontrados na literatura. / [en] Conventional computer architectures based on Von Neumann’s model do not efficiently implement the Prolog language, founded on unification and automatic backtracking mechanisms. This work presents the architecture of a content addressable memory accelerator to be connected to a Prolog Virtual machine (PLM) developed at COPPE/UFRJ. The presented architecture increases the virtual machine’s efficiency by exploring the content addressable memory’s parallelism to implement the backtracking mechanism. The impact on the virtual machine’s performance due to the new architecture was evaluated by simulation, using classical programs found on the literature.
|
2 |
[en] A SPECIFICATION FOR A JAVA REGISTER-BASED MACHINE / [pt] UMA ESPECIFICAÇÃO DE MÁQUINA DE REGISTRADORES PARA JAVAGUILHERME CAMPOS HAZAN 21 May 2007 (has links)
[pt] A linguagem Java foi definida tendo como foco a
portabilidade. O código
gerado pela compilação é interpretado por uma máquina
virtual, e não diretamente
pelo processador destino, como um programa em C. Este
código intermediário,
também conhecido como bytecode, é a chave da portabilidade
de Java.
Os Bytecodes Java usam uma pilha para manipular os
operandos das instruções.
O uso de pilha tem suas vantagens e desvantagens. Dentre
as vantagens,
podemos citar a simplicidade da implementação do
compilador e da máquina
virtual. A principal desvantagem é a redução na velocidade
de execução dos
programas, devido à necessidade de se mover os operandos
para a pilha e retirar
dela o resultado, gerando um aumento no número de
instruções que devem
ser processadas. Diversos estudos indicam que máquinas
virtuais baseadas em
registradores podem ser mais rápidas que as baseadas em
pilha. Decidimos criar
uma nova especificação de bytecodes, específicos para
máquinas virtuais baseadas
em registradores. Esperamos com isso obter um aumento no
desempenho
das aplicações. / [en] The Java language was created with a focus on portability.
The code generated
by the compiler is interpreted by a virtual machine, and
not directly by the
target processor, like programs written in C. This
intermediate code, also known
as bytecode, is the key to Java's portability. The Java
Bytecodes use a stack to
manipulate the instruction operands. The use of stack has
its their pros and cons.
Among the advantages, we can cite the simplicity of
implementation of the compiler
and virtual machine. On the other hand, there is a speed
reduction in the
program's execution, due to the need to move the operands
to and from the
stack, and retrieve results from it, increasing the number
of instructions that are
processed. Much study has been done that indicating that
register-based virtual
machines can be faster than the ones based on stacks.
Based on this, we decided
to create a new bytecode specification, proper for a
virtual machine based
on registers. By doing this, we hope to obtain an increase
in an application's performance.
|
3 |
[en] SCRIPTING CUSTOMIZED COMPONENTS FOR WIRELESS SENSOR NETWORKS / [pt] PROGRAMANDO REDES DE SENSORES SEM FIO COM SCRIPTS SOBRE COMPONENTES CUSTOMIZADOSADRIANO FRANCISCO BRANCO 09 June 2016 (has links)
[pt] Programar redes de sensores sem fio (RSSF) é uma tarefa difícil. O
programador tem que lidar com várias atividades simultâneas em um ambiente
com recursos extremamente limitados. Neste trabalho propomos um
modelo de programação para facilitar essa tarefa. O modelo que propomos
combina o uso de máquinas virtuais configuráveis baseadas em componentes
com uma linguagem de script reativa que pode ser analisada estaticamente
para evitar conitos de memória e execução de laços infinitos. Essa abordagem
permite a exibilidade de carregamento remoto de código nos nós
da rede combinado com um conjunto de garantias para o programador. A
escolha de um conjunto específico de componentes numa configuração de
máquina virtual define o nível de abstração visto pelo script da aplicação.
Para avaliar esse modelo, construímos Terra, um sistema que combina a
linguagem de script Céu-T com uma máquina virtual e uma biblioteca de
componentes. Nós projetamos esta biblioteca considerando as funcionalidades
comumente necessárias em aplicações de RSSF - tipicamente para
sensoreamento e controle. Implementamos diferentes aplicações utilizando
Terra e uma linguagem orientada a eventos baseados em C. Além disso discutimos
as vantagens e desvantagens dessas implementações alternativas.
Finalmente, também avaliamos Terra medindo o custo adicional em uma
aplicação básica e discutimos sua utilização e custo em diferentes cenários
de aplicações WSNs. / [en] Programming wireless sensors networks (WSN) is a difficult task. The
programmer must deal with several concurrent activities in an environment
with severely limited resources. In this work we propose a programming
model to facilitate this task. The model we propose combines the use of
configurable component-based virtual machines with a reactive scripting
language which can be statically analyzed to avoid unbounded execution
and memory conicts. This approach allows the exibility of remotely
uploading code on motes to be combined with a set of guarantees for
the programmer. The choice of the specific set of components in a
virtual machine configuration defines the abstraction level seen by the
application script. To evaluate this model, we built Terra, a system
combining the scripting language Céu-T with the Terra virtual machine and
a library of components. We designed this library taking into account the
functionalities commonly needed in WSN applications - typically for sense
and control. We implemented different applications using Terra and using
an event-driven language based on C and we discuss the advantages and
disadvantages of the alternative implementations. Finally, we also evaluate
Terra by measuring its overhead in a basic application and discussing its
use and cost in different WSN scenarios.
|
4 |
[en] A SYNCHRONOUS VIRTUAL MACHINE FOR MULTIMEDIA PRESENTATIONS / [pt] UMA MÁQUINA VIRTUAL SÍNCRONA PARA APRESENTAÇÕES MULTIMÍDIAGUILHERME AUGUSTO FERREIRA LIMA 07 June 2016 (has links)
[pt] As linguagens multimídia de alto-nível atuais são limitadas. Suas limitações
decorrem não da ausência de funcionalidades mas da complexidade causada pelo
excesso delas e, especialmente, da sua definição não-estruturada. Linguagens como
NCL, SMIL e HTML definem diversas construções para controlar a apresentação
de dados audiovisuais, porém falham ao não descreverem precisamente como essas
construções relacionam-se umas com as outras, particularmente em termos de comportamento.
Não há uma separação clara entre construções básicas e construções
derivadas; nem um princípio aparente de estruturação hierárquica na sua definição.
Usuários dessas linguagens podem dispensar tal princípio, mas ele é imprescindível
para as pessoas que definem e implementam essas linguagens: o princípio de estruturação
hierárquica torna as especificações e implementações controláveis através
da redução da linguagem a um conjunto de conceitos básicos (primitivos). Nesta
tese, um conjunto de tais conceitos básicos é proposto e adotado como a linguagem
de uma máquina virtual para apresentações multimídia. Mais precisamente, uma
nova linguagem multimídia de alto-nível, chamada Smix (Synchronous Mixer), é
apresentada e definida de forma a servir como camada de abstração adequada para a
definição e implementação de linguagens multimídia de nível superior. Ao definir a
linguagem Smix, isto é, ao escolher um conjunto de conceitos básicos, este trabalho
visa o minimalismo mas ao mesmo tempo trata alguns dos principais problemas das
linguagens multimídia de alto-nível atuais, a saber, os modelos semânticos inadequados
de suas especificações e as abordagens não-sistemáticas de suas implementações.
No lado da especificação, sustenta-se o uso de uma semântica síncrona simples
porém expressiva, com uma noção temporal precisa. No lado da implementação,
propõe-se uma arquitetura de duas camadas que facilita o mapeamento dos conceitos
da especificação em primitivas de processamento digital de sinais. A camada superior
(front end) é a realização da semântica e a camada inferior (back end) estrutura-se
como um dataflow para processamento digital de sinais multimídia. / [en] Current high-level multimedia languages are limited. Their limitation stems not
from the lack of features but from the complexity caused by the excess of them and,
more importantly, by their unstructured definition. Languages such as NCL, SMIL,
and HTML define innumerable constructs to control the presentation of audiovisual
data, but they fail to describe how these constructs relate to each other, especially in
terms of behavior. There is no clear separation between basic and derived constructs,
and no apparent principle of hierarchical build-up in their definition. Users may
not need such principle, but it is indispensable for the people who define and
implement these languages: it makes specifications and implementations manageable
by reducing the language to a set of basic (primitive) concepts. In this thesis, a set of
such basic concepts is proposed and taken as the language of a virtual machine for
multimedia presentations. More precisely, a novel high-level multimedia language,
called Smix (Synchronous Mixer), is presented and defined to serve as an appropriate
abstraction layer for the definition and implementation of higher level multimedia
languages. In defining Smix, that is, choosing a set of basic concepts, this work
strives for minimalism but also aims at tackling major problems of current high-level
multimedia languages, namely, the inadequate semantic models of their specifications
and unsystematic approaches of their implementations. On the specification side,
the use of a simple but expressive synchronous semantics, with a precise notion of
time, is advocated. On the implementation side, a two-layered architecture that eases
the mapping of specification concepts into digital signal processing primitives is
proposed. The top layer (front end) is the realization of the semantics, and the bottom
layer (back end) is structured as a multimedia digital signal processing dataflow.
|
Page generated in 0.0339 seconds