Workshop sobre Educação em Arquitetura de Computadores - WEAC 2008
CSML-SimE: Ambiente de Simulação Multi-nível de Sistemas de
Computação
Gabriela da Silva, Marco Santos Chalub, Samuel Domingues Rocha Oliveira, Vinícius
Guimarães, Carlos Augusto Paiva da Silva Martins
Pontifícia Universidade Católica de Minas Gerais
[email protected], [email protected], [email protected],
[email protected], [email protected]
conceitos de sistemas de computação apresentados para
o aluno. A ferramenta foi criada para atender qualquer
usuário, independente do seu nível de conhecimento.
Quanto às entradas, o ambiente suporta três tipos:
High Level Language (HLL), Memory Trace (MT) ou
Assembly. A entrada em linguagem de alto nível
permite ao usuário observar o comportamento e
resultado do programa, além de permitir a análise do
impacto de um código no desempenho computacional.
Se for desejo do usuário simplesmente analisar o
desempenho de um MT, então o usuário poderá simular
somente o nível de HM. Mas ainda assim, se o
interesse do usuário, for o de partir do Assembly para
quaisquer das simulações, basta ativar tal entrada.
Assim é possível obter várias combinações entre
entradas e tipos de simulação, o que traz flexibilidade e
não determinismo ao ambiente.
Na parte 2 são apresentados os trabalhos
relacionados, seis simuladores semelhantes foram
encontrados [1,2,3,4,5,6]. Na parte 3 é apresentado o
CSML-SimE. Na parte 4 é feita uma comparação e são
apresentadas suas vantagens diante dos outros
simuladores. E finalmente nas partes 5 e 6 são
apresentadas a conclusão e as referências
respectivamente.
Resumo
A maioria dos simuladores de hierarquia de
memória e de nível Instruction Set Architecture (ISA)
tem simulação isolada e aqueles que possuem
simulação multi-nível são pouco didáticos. Além disso,
os simuladores analisados possibilitam apenas o
Memory Trace (MT) e o código Assembly como
entrada de dados. Com a finalidade de proporcionar
simulação multi-nível foi proposto e desenvolvido o
CSML-SimE, ambiente de simulação de sistema de
computação que unifica essas características. Com a
utilização desse ambiente será possível analisar o
resultado e o desempenho computacional a partir de
uma High Level Language (HLL), Assembly ou MT de
forma didática, facilitando a utilização por usuários
de diferentes níveis de conhecimento.
1. Introdução
Muitos são os simuladores que têm simulação
isolada de Hierarquia de Memória (HM) [1,2,3,4] e de
nível Instruction Set Architecture (ISA) [2,3,5,6]. Por
outro lado, poucos propiciam a simulação integrada ou
individual dos mesmos [3]. Além das ferramentas que
integram esses dois conceitos serem minoria, raramente
oferece didática. Dessa forma, propôs-se construir um
ambiente de simulação que atendesse aos requisitos
não encontrados, ou seja, um simulador com níveis
integrados que simulasse didaticamente a HM
juntamente com nível ISA e ao mesmo tempo fosse
flexível tanto com relação ao código, quanto á
utilização.
O objetivo do desenvolvimento do CSML-SimE é
proporcionar um ambiente no qual se pode direcionar a
simulação de acordo com o interesse de estudo ou
pesquisa. Além de promover maior dinamismo aos
2. Trabalhos Relacionados
Ao desenvolver a pesquisa do estado da arte foram
encontrados e analisados alguns simuladores
[1,2,3,4,5,6] dentre os quais encontraram-se diversas
características importantes para um ambiente de
simulação. Tal análise tem como finalidade realizar um
levantamento das melhores características de cada
ferramenta, para chegar-se às características ideais. O
intuito é promover a integração dessas e se necessário
17
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2008
Ao analisar o estado da arte percebeu-se que raros
são os simuladores ou ambientes de simulação
didáticos preparados para atender diferentes estágios
de conhecimentos de usuários. Foi possível também
perceber que a maioria dos simuladores analisados e
pesquisados oferece simulação isolada de nível ISA ou
de HM, o que agrega especificidade a ferramenta e a
faz uma ferramenta de propósito único. Buscando criar
uma ferramenta de propósito geral e não destinada a
apenas um público alvo, propôs-se o desenvolvimento
do CSML-SimE, ambiente de simulação que tem como
finalidade manter as simulações isoladas comumente
encontradas agregando a estas a opção de integração
das mesmas.
adicionar algumas outras que não se encontrarem no
estudo realizado.
Várias são as características que se considera
importantes em um ambiente de simulação de Sistemas
de Computação, dentre as quais se pode destacar:
portabilidade, simulação isolada ou simulação
integrada de HM e nivel ISA, possibilidade de entrada
de dados em alto (HLL) ou baixo nível (Assembly),
didática, entre outros. Diante disso, irá ser feito uma
análise crítica dos simuladores pesquisados em relação
às características padrões já citadas.
O LBGCache [4] é um simulador simples e didático
para análise do comportamento e funcionamento
estrutural de memórias cache e apresenta uma
simulação muito pouco detalhada, por este motivo o
LBGCache consegue fornecer ao usuário uma didática
altamente eficiente.
O SimpleScalar [3] é um ambiente onde
simuladores podem ser agregados. Ao contrário do
LBGCache, o SimpleScalar não possui uma boa
didática, pois as simulações são apresentadas em um
nível de detalhamento extremamente alto, considerando
que o usuário leigo não consegue absorver informações
consistentes. O SimpleScalar não apresentada uma
portabilidade considerável, pois deve ser instalado em
uma maquina local e apenas em sistemas UNIX.
Assim como o SimpleScalar, o simulador SPIM [5]
não possui uma boa portabilidade por ser uma
aplicação desktop. O SPIM apresenta apenas a entrada
de linguagem Assembly e possui apenas o nível de
simulação ISA, assim este simulador é caracterizado
por sua extrema limitação.
Outro simulador chamado WinDLX [6] é altamente
didático por utilizar de várias animações no fluxo das
instruções, mas é semelhante ao SPIM quanto às suas
funcionalidades e portabilidade. É necessário que seja
instalado em uma máquina local e oferece apenas
entrada de dados em Assembly e simulação do nível
ISA.
O MH-TEDSim [1] e o SIM-MIPS&HM [2] foram
desenvolvidos durante a graduação, por alunos da PUC
Minas, e juntos apresentam qualidades na qual se
acredita serem fundamentais em um ambiente de
simulação. Ambos são amigáveis, não apresentando
dificuldades na utilização, além de oferecerem
simulação completa da HM. O primeiro possui a
simulação por execução de código Assembly como
principal característica, uma vez que suporta um grande
número de instruções. O segundo proporciona uma
simulação detalhada do nível ISA possibilitando a
análise avançada do resultado a partir de um código
Assembly.
3. CSML-SimE
O desenvolvimento do CSML-SimE foi definido,
especificado e desenvolvido de forma a disponibilizar
um ambiente de simulação que una as características de
todos estes simuladores, proporcionando simulação
multi-nível e didática para usuários de diferentes níveis
de conhecimento.
No CSML-SimE foram aproveitadas as melhores
características dos simuladores analisados. Após o
levantamento dos requisitos para a ferramenta, foi
proposta e desenvolvida uma arquitetura flexível que
permite escolher o tipo de entrada de dados. Foram
desenvolvidas as simulações tanto do nível ISA, quanto
da HM e as entradas em HLL, em código Assembly ou
em MT. Ao escolher o tipo de entrada deve-se
configurar o tipo de simulação do código de entrada
em nível ISA, HM ou ISA e HM integrados.
O CSML-SimE foi desenvolvido em linguagem
JAVA para plataforma Web. A arquitetura do software
é estruturada em três camadas com o objetivo de
favorecer a reutilização com o propósito de aumentar
sua extensibilidade.
Figura 1. Arquitetura do fluxo de execução
18
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2008
A camada Graphical User Interface na qual
constam as classes de comunicação com o usuário, o
permite configurar a entrada de dados e simulação
desejados. A segunda camada é a de controle de dados,
onde se encontram as classes responsáveis pela
filtragem dos dados, estabelecendo-se melhor estrutura,
preparando os dados para a próxima camada e fazendo
a comunicação entre HLL, Assembly e MT. Por fim, a
camada Simulação constitui-se de classes da simulação
do nível ISA e da HM.
Figura 2. Entrada em HLL
4. Resultados de Verificação
O usuário pode salvar o código gerado ou
simplesmente continuar a simulação. Ele pode simular
isoladamente o nível ISA, a HM ou integrar ambos os
níveis. Para esse exemplo foi feita a simulação
integrada com o objetivo de verificar o resultado e
analisar o desempenho computacional.
O próximo passo é a simulação do nível ISA
integrada com a HM, feita a partir do código Assembly
e do MT gerado. Essa simulação pode ser feita passo-apasso ou direta.
Pode-se verificar o resultado nos registradores
verificando o nível ISA. Já o desempenho da HM, por
sua vez, pode ser analisado através do tempo gasto e de
outros dados estatísticos que representam o
desempenho computacional. O Gráfico 1 compara o
desempenho dos dois código.
O ambiente proporciona a simulação multi-nível que
é importante em situações que seja interessante analisar
o desempenho e o comportamento. Será utilizado um
exemplo de convolução de imagens para demonstrar a
simulação dos níveis de HM e ISA, a partir da HLL.
Considere uma figura e máscara representada
pelas seguintes matrizes:
1 3 5 8
2 7 1 9
8 1 1 2
4 7 6 5
1 1 1
1 1 1
1 1 1
Tabela 1. Imagem (esquerda) e máscara (direita)
No algoritmo de convolução são utilizados quatro
laços de repetição que fazem o controle do
deslocamento da máscara na imagem. O trecho de
código abaixo demonstra a entrada de dados HLL na
linguagem L:
inteiro l, j, m, n;
//declaração de variáveis
l := 0; j:=0; m:=0; n:= 0; //inicialização
while ( i <= 4 ) Begin //algoritmo de convolução
while ( j <= 4)
while (m <= 3)
while (n < = 3)
…
endwhile;
Os dois primeiros laços representam as dimensões
da imagem e os outros dois a máscara. Para demonstrar
as vantagens da simulação multi-nível, foi comparado
esse trecho de código na linguagem L com outro,
definido pela inversão dos laços tanto da imagem
quanto da máscara. Entrando com um trecho de código
para simulação pode-se gerar o Assembly, de acordo
com a Figura 2.
Gráfico 1. Desempenho entre os algoritmos de convolução
Apenas ao observar a quantidade de cache hit e
cache miss e, conseqüentemente, o tempo gasto na
execução, pode-se perceber a grande diferença entre
ambos os trechos.
A explicação para a diferença é simples, uma vez
que o primeiro trecho de código segue o sentido de
mapeamento da memória do compilador, já o segundo
segue o sentido invertido. Dessa forma pôde-se
verificar que existem diferentes formas de chegar a um
mesmo resultado, e que cada uma pode ter uma
implicação mais ou menos significante no desempenho
computacional.
Portanto podemos concluir que a simulação
integrada oferece informações importantes para
determinados casos, contribuindo para a compreensão
tanto do nível ISA quanto da HM.
19
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2008
CSMLSimE
LBGCach
e
SPIM
SimpleScal
ar
WinDLX
MHTEDSim
SIMMIPS&HM
Didático
X
X
-
-
X
X
X
Entrada em Assembly
X
X
X
X
X
X
X
Simula nível de HM
isolado
X
X
-
X
-
X
X
Simula nível ISA isolado
X
-
X
X
X
-
X
Entrada em MT
X
-
-
-
-
X
X
Entrada em HLL
X
-
-
X
-
-
-
Simulação Multi-nível
X
-
-
X
-
-
-
Tabela 2. Análise comparativa entre características de um simulador de sistema de computação didático
6. Referências
5. Conclusão
[1] SILVA, GABRIELA ; MORAIS, RAFAEL D. ;
OLIVEIRA, SAMUEL D. R. ; PEREIRA, VINÍCIUS G. ;
MARTINS, C. A. P. S. . “MH-TEDSim: Simulador de
hierarquia de memória com simulação dirigida por execução
ou por rastro”. In: Workshop em Sistemas Computacionais
de Alto Desempenho - Concurso de Trabalhos de Iniciação
Científica (WSCAD-CTIC) 2007, Porto Alegre: Sociedade
Brasileira de Computação, 2007. p. 1-4.
Como apresentado, o ambiente desenvolvido possui
todas as características traçadas como objetivo. O
ambiente oferece simulação integrada do nível ISA e
da HM, pode ser utilizada para aprendizagem e
atividades de pesquisa. Portanto pode-se dizer que a
primeira onda do projeto foi alcançada com sucesso.
Durante o estudo de outros simuladores não foi
encontrado nenhum com todas as características
oferecidas pelo CSML-SimE. Como principais
contribuições desse trabalho estão a possibilidade de se
simular mais de um nível (ISA e HM), diferentes tipos
de entrada (HLL, Assembly e MT) e a disponibilização
de um ambiente de simulação. Com isso pôde-se
contribuir para o estudo do comportamento e
desempenho de determinado código, além de auxiliar
na aprendizagem e pesquisa por usuários de muitos
níveis de conhecimento diferentes. Por fim deve-se
ressaltar a implementação do conceito de ambiente,
que tem como objetivo promover a independência entre
módulos, facilitando a inclusão de novas
funcionalidades e possibilitando a customização da
simulação.
Com a conclusão desse trabalho, novos projetos
são previstos para o ambiente de simulação.
Proporcionar ao usuário a possibilidade de configurar o
sistema computacional através da integração de
simulação de multiprocessadores visando o estudo dos
sistemas computacionais atuais, a adição de novas
linguagens de alto nível conhecidas, como Java e C.
[2] AZEVEDO, HUGO C.; MARTINS, C. A. P. S. . “SIMMIPS&HM - Simulador didático do nível ISA do MIPS e de
hierarquia de memória”. In: Workshop em Sistemas
Computacionais de Alto Desempenho - Concurso de
Trabalhos de Iniciação Científica (WSCAD-CTIC) 2007.
Porto Alegre: Sociedade Brasileira de Computação, 2007. p.
1-4.
[3] BURGER, D.; AUSTIN, T. M. . “The SimpleScalar Tool
Set”, Version 2.0. Technical Report #1342, Computer
Sciences Department, University of Wisconsin-Madison,
Jun. 1997.
[4] MOREIRA, L.; PONTES, B.; FERNANDES, G.;
VIDAL, J. M.; WANDERLEY NETTO, E. B. .
“LBGCACHE V2.0: Simulador Didático para Análise do
Comportamento e Funcionamento Estrutural de Memórias
Caches”. In: Anais III Congresso de Iniciação Científica do
CEFETRN , Dec, 22-23, Natal, Brazil, 2005
[5]
SPIM
Simulator
http://cs.wisc.edu/~larus/spim.html
[6]
WinDLX
Simulator
ftp://ftp.mkp.com/pub/dlx/ftp
20
Home
Home
Page,
Page,
Download

CSML-SimE: Ambiente de Simulação Multi-nível de