You are on page 1of 34

WEAC 2011

Workshop sobre Educao em


Arquitetura de Computadores

APRESENTAO

O Workshop sobre Educao em Arquitetura de Computadores (WEAC) um evento


promovido pela comisso especial em Arquitetura de Computadores e Processamento de
Alto Desempenho da Sociedade Brasileira de Computao (SBC).
Em sua sexta edio, o WEAC 2011 conta com 5 artigos distribudos em duas sesses
tcnicas. Destaca-se o empenho do Comit de Programa durante o processo de avaliao.
Cada artigo recebeu 3 avaliaes que consideraram tanto o mrito tcnico como a
insero nos tpicos de interesse do evento.
Nesta edio, o WEAC promove um painel sobre o livro Arquitetura de Computadores:
educao, ensino e aprendizado, cujo objetivo discutir a aplicao do livro e de seus
captulos em disciplinas da graduao e ps-graduao. O WEAC promove tambm um
grupo de discusso sobre a Revista Eletrnica de Educao em Arquitetura de
Computadores (REEAC). O objetivo a criao de um fluxo contnuo de submisses
promovendo a divulgao de novas idias sobre educao em Arquitetura de
Computadores.

Tenham todos um excelente workshop.

Henrique Cota de Freitas


Coordenao do WEAC 2011
Vitria, 28 de outubro de 2011

WEAC 2011
Workshop sobre Educao em Arquitetura de Computadores

Coordenao do WEAC 2011


Henrique Cota de Freitas (PUC Minas)

Comit de Programa do WEAC 2011


Carlos Augusto Paiva da Silva Martins (PUC Minas)
Cesar Albenes Zeferino (UNIVALI)
Cesar De Rose (PUCRS)
Dilma M da Silva (IBM USA)
Edil Fernandes (UFRJ)
Edson Midorikawa (USP)
Eduardo Marques (USP)
Edward David Moreno (UFS)
Gabriel Pereira da Silva (UFRJ)
Henrique Cota de Freitas (PUC Minas)
Ivan Saraiva Silva (UFPI)
Joao Angelo Martini (UEM)
Manoel Eusbio de Lima (UFPE)
Maurcio Pilla (UFPEL)
Nahri Moreano (UFMS)
Philippe Olivier Alexandre Navaux (UFRGS)
Rafael dos Santos (CEITEC)
Rafael Dueire Lins (UFPE)
Raimundo Barreto (UFAM)
Ricardo Santos Ferreira (UFV)
Roberto A Hexsel (UFPR)
Rodolfo Jardim de Azevedo (UNICAMP)
Romanelli Lodron Zuim (PUC Minas)
Ronaldo Augusto de Lara Gonalves (UEM)
Sandro Neves Soares (UCS)
Sandro Rigo (UNICAMP)
Srgio Takeo Kofuji (USP)

SUMRIO

Metodologia de Ensino Orientada a Projetos e Criao de Material Didtico aplicada


ao Projeto de Processadores
Ricardo Duarte (UFMG), Pedro Donoso-Garcia (UFMG)

Simuladores de Memria Cache, um Estudo Comparativo Direcionado ao Ensino


Matheus Xavier (IFCE), Jardel Rodrigues (IFCE), Otvio Jnior (IFCE)

Extenso do Ptolemy para o ensino de Organizao e Arquitetura de Computadores


Andr Torres (UFPB), Alisson Brito (UFPB)

13

Arquitetura de Computadores em uma Simples Folha de Papel


Ricardo Ferreira (UFV)

19

BIP IV: Especificao e Suporte na Ferramenta Bipide


Paulo Rech (UNIVALI), Paulo Vieira (UNIVALI), Cesar Zeferino (UNIVALI), Andr
Raabe (UNIVALI)

25

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Metodologia de Ensino Orientada a Projetos e Criao de Material Didtico


aplicada ao Projeto de Processadores
Ricardo de Oliveira Duarte, Pedro Francisco Donoso Garcia
Depto. de Engenharia Eletrnica Escola de Engenharia
Universidade Federal de Minas Gerais
Av. Antnio Carlos, 6627 Campus da Pampulha CEP 31.270-901 Belo Horizonte, MG
(ricardoduarte@ufmg.br, pedro@cpdee.ufmg.br)

ensino a forma como os alunos propem a soluo


para um projeto em Engenharia enunciado, por meio
dos conhecimentos adquiridos e na integrao deles
com outros conhecimentos. A partir da identificao
dos requisitos mnimos determinados pelo projeto
proposto pelo professor, inicia-se o fracionamento do
projeto em etapas, que necessita de profundo
entendimento de conceitos, anlise e tcnicas
envolvidas na sua soluo. O aluno incentivado a
construir seu prprio aprendizado estudando os
conceitos em material didtico cuidadosamente
desenvolvido para esse fim e de outros
disponibilizados, para a realizao de sua prpria
soluo da situao-problema proposta.
O aluno orientado a definir, documentar,
implementar seu prprio projeto e test-lo em
laboratrio. O professor atua como orientador das
atividades propostas e trabalha como ator facilitador da
construo do conhecimento de cada estudante,
esclarecendo dvidas sobre seus projetos, sugerindo
alternativas de projeto e referncias bibliogrficas para
o desenvolvimento das solues, alm de avaliar o
aprendizado e o envolvimento do aluno no projeto.
Essa metodologia de ensino j vem sendo
empregada em algumas disciplinas do curso de
Engenharia Eltrica e de Engenharia de Controle e
Automao, mas especificamente nas disciplinas de
laboratrio de Eletrnica I, Eletrnica de Potncia e
Controle I na UFMG desde 2006. Conforme observa
Donoso-Garcia, professor da disciplina de laboratrio
de Eletrnica I, tal abordagem no mbito da
Engenharia se aproxima muito do modus operandis,
encontrado em diversas indstrias no desenvolvimento
de novos produtos tecnolgicos [2]. A partir de uma
especificao parcial de um conjunto de instrues e
requisitos da arquitetura, o aluno convidado a
envolver-se ativamente com o processo de criao da
sua prpria soluo. O desenvolvimento do
processador realizado seguindo orientaes gerais
passadas pelo professor da disciplina. Como o aluno
responsvel por suas prprias decises de projeto, isso
faz com que o seu aprendizado se torne mais
agradvel, estimulante e prximo da realidade

Resumo
Este artigo descreve uma experincia de produo de
material didtico para o ensino do projeto de
processadores para uma disciplina terica e prtica
conhecida por Sistemas, Processadores e Perifricos
obrigatria aos cursos de Graduao em Engenharia
Eltrica, Engenharia de Controle e Automao e
Engenharia de Sistemas da UFMG. A construo de
materiais didticos desenvolvidos para essa disciplina
segue diretrizes encontradas em metodologias ativas
de ensino orientadas a projetos. considerada uma
proposta para atividades de laboratrio, motivando os
alunos a adquirir e construir seu prprio
conhecimento atravs da auto-aprendizagem com
materiais didticos desenvolvidos especificamente
para este fim. Os alunos tomam decises de projeto e
apresentam suas prprias solues, ao invs da
simples repetio de tarefas pr-determinadas
encontradas em metodologias de ensino prticas
baseadas em guias de aula. Os resultados observados
so o aumento da motivao, do aprendizado e da
participao dos alunos nas aulas e atividades
propostas.

1. Introduo
Este artigo trata do relato de caso da aplicao da
metodologia de Ensino Orientado a Projetos e o
desenvolvimento de material didtico para uma
disciplina prtica de laboratrio cujo nome Sistemas,
Processadores e Perifricos (SPP). Essa disciplina
obrigatria aos cursos de Engenharia Eltrica,
Engenharia de Controle e Automao e Engenharia de
Sistemas na UFMG, onde o aprendizado do projeto de
processadores um dos objetivos.
O material didtico desenvolvido foi norteado pela
metodologia de ensino que tem seus princpios
inspirados na metodologia conhecida como Problem
Based Learning PBL, amplamente divulgada em
literatura [1]. O elemento chave dessa metodologia de

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)


enfrentada na vida profissional de um engenheiro. Para
que isso se torne uma realidade, um conjunto de
objetos multimiditicos, enfatizando os conceitos e a
base terica necessria ao desenvolvimento da
situao-problema deve ser desenvolvido e apresentado
ao aluno no incio das atividades da disciplina. O
enfoque desse trabalho concentra-se no relato de um
caso de aplicao de uma metodologia de ensino
orientada a projetos e a criao do material didtico
voltado ao projeto de processadores nas aulas prticas
da disciplina SPP.
A abordagem de ensino orientada a projetos
possibilita a valorizao das habilidades e
competncias individuais de cada aluno e tambm
estimula o trabalho em grupo, pois implica na
constante troca de experincias dos atores envolvidos
no processo. Essa abordagem tambm estimula o
professor que ministra a disciplina a cada semestre por
vivenciar diferentes solues e situaes prticas com a
cada situao-problema proposta. Para cada semestre
letivo, o professor pode e deve elaborar uma nova
situao-problema, de forma que os alunos se sintam
motivados e desafiados a desenvolver um trabalho
indito.
A teoria tem uma importncia substancial e no
menosprezada, mas prioritariamente se enfatiza que
esta serve como subsdio para a realizao de trabalhos
prticos, e no apenas uma simples memorizao de
conceitos tericos, sem relacionamento com a prtica.
Os alunos tm sido incentivados a serem atores
participantes do ensino e no apenas receptores de
informaes prontas. Por outro lado, o professor
torna-se um gestor de ensino, auxiliando e provendo
suporte para o aprendizado dos alunos e no apenas
repetindo contedo terico extrado de livros.
Nas aulas de laboratrio onde so utilizados os
guias ou roteiros contendo descrio de experimentos,
estes se mostram repetitivos e muitas vezes desconexos
com a evoluo inerente de certos temas abordados em
disciplinas de uma rea tecnolgica. Desta forma, o
aluno desenvolve menos sua criatividade.
O artigo est organizado da seguinte forma: Na
seo 2 apresenta-se o contexto no qual a disciplina era
ministrada at ento, seus objetivos e as justificativas
observadas para o desenvolvimento do um novo
material didtico e a mudana da metodologia de
ensino. Na seo 3 apresenta-se a Estruturao do
Projeto de construo do material didtico. Na seo 4,
apresenta-se uma sntese dos Materiais e Mtodos
desenvolvidos para a aplicao da metodologia de
ensino orientada a projetos, empregada na disciplina. O
mtodo de avaliao utilizado tambm brevemente
relatado nessa mesma seo. Na seo 5, apresenta-se
uma
descrio
dos
resultados
alcanados.
Consideraes finais compem a ltima seo.

2. Contextualizao
SPP uma disciplina obrigatria para trs cursos
de graduao da UFMG: em Engenharia Eltrica, em
Engenharia de Controle e Automao e em Engenharia
de Sistemas, totalizando aproximadamente 150 alunos
matriculados a cada semestre. SPP composta de uma
carga horria semestral de 45 horas de aulas tericas e
30 horas de aulas prticas em laboratrio (total de
75h/semestre). Todas as aulas tericas acontecem
concomitantemente com as aulas prticas. A disciplina
SPP de carter formativo do aluno na rea de
Projetos de Sistemas Digitais dos cursos supracitados e
tem como pr-requisitos s disciplinas de Sistemas
Digitais e Laboratrio de Sistemas Digitais, onde o
enfoque de projetos de sistemas digitais modernos
baseados em linguagens de descrio de hardware e
uso de dispositivos lgicos programveis deve ser
ensinado e praticado em aulas de laboratrio.
De forma geral, os objetivos da disciplina SPP so de
capacitar o aluno para:
a) O entendimento do funcionamento e o projeto
de um processador, suas partes, como estas se
integram e se comunicam para realizar
funes para as quais foi projetado.
b) Identificao e caracterizao de um
perifrico, sua forma de comunicao com
processadores e seus modos de operao.
Antes do desenvolvimento do material didtico
aqui apresentado, as aulas de laboratrio desta
disciplina eram baseadas em roteiros com experincias
bem definidas e repetitivas, onde o aluno executava
tarefas
pr-determinadas,
devendo
apresentar
pr-relatrios no incio de cada aula de laboratrio ao
professor da disciplina. Desta forma, os pr-relatrios
permitiam identificar se o aluno havia estudado o
assunto previamente e se preparado para as atividades
presenciais da aula prtica da semana. Os roteiros de
laboratrio da aula prtica estavam sempre atrelados ao
assunto dado na aula terica da semana.
Para se alcanar o primeiro objetivo geral da
disciplina, o professor apresentava em sala de aula o
desenvolvimento de um processador definido para fins
didticos, conhecido por MIC-1 [3]. O projeto desse
processador era dividido em oito aulas prticas na
forma de roteiros de atividades. O aluno era convidado
a projetar o processador MIC-1 na linguagem de
descrio de hardware VHDL e valid-lo atravs de
um simulador de cdigos de descrio de hardware
produzidos da mesma linguagem. O segundo grande
objetivo dessa disciplina era alcanado com o estudo
de perifricos e sua programao na linguagem
Assembly da arquitetura da famlia de processadores da
Intel. Esse objetivo era alcanado em sete aulas
prticas, sendo cada uma com o seu prprio roteiro de
atividades abordando a programao de um perifrico.

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)


do mesmo, tambm foi desenvolvida [7]. Essa apostila
contm o material terico mnimo e aplicao da teoria
nas atividades prticas relacionada ao estudo de
perifricos de um microcontrolador, sua programao e
o desenvolvimento de pequenos sistemas, utilizando-se
os perifricos estudados. Exemplos de programao e
uso de cada perifrico so apresentados em cada seo
da
apostila.
Complementando
o
material
disponibilizado para os alunos, foram selecionados
manuais, tutoriais e folhas de dados de processadores e
microcontroladores comerciais e material de apoio,
(softwares e tutoriais) que auxiliam o aluno no uso das
ferramentas empregadas no laboratrio e na realizao
dos trabalhos propostos.
Todo o material didtico desenvolvido foi
estruturado de forma a permitir seu crescimento e
atualizao com outras tcnicas de projeto de
processadores que venham a ser agregadas, sem ser
necessrio efetuar modificaes nos objetos de
aprendizagem j produzidos.

Relatos dos alunos descreviam a pouca motivao


pelas aulas prticas devido a constante repetio e
constatao de resultados descritos nos roteiros.
Tambm relatavam sobre as aulas, que por se tratarem
de atividades repetitivas j vivenciadas e desenvolvidas
por alunos de turmas anteriores, no se sentiam
motivados a preparar os pr-relatrios, tornando essa
atividade um mero cumprimento de tarefas decorrentes
da metodologia de ensino empregada na disciplina.
Com a metodologia baseada em roteiros de aulas, os
professores percebiam o baixo interesse e a pouca
motivao dos alunos. Em geral os alunos no
percebiam a razo de estarem estudando certos
assuntos, por no terem a noo do todo. Todos esses
sinais apontavam para a necessidade de mudana na
estratgia de ensino.

3. Estruturao do material da disciplina


A metodologia de ensino proposta para essa
disciplina centrada no Ensino Orientado ao Projeto,
baseada em aliar a teoria prtica, apresentando
conceitos tericos fundamentais, mas sempre
procurando exemplificar aos alunos como aplic-los
[1]. A teoria usada para a base do desenvolvimento dos
objetos de ensino utilizados na disciplina SPP foi
baseada em livros-texto contemporneos, referncia
das reas, de Sistemas Digitais [4], Arquitetura e
Organizao de Computadores [5] e Projetos com
Microcontroladores [6].
A fim de alcanar o primeiro objetivo da disciplina
(mencionado na seo 2) e com base nos livros-textos
citados foi desenvolvido o material didtico contendo
teoria e aspectos prticos do projeto de processadores.
Um sequenciamento completo do projeto de um
processador dividido em etapas foi elaborado. Um
exemplo completo de projeto de um processador foi
apresentado, desde a especificao de requisitos,
seguindo cada uma das etapas do sequenciamento de
projeto citado. Desta forma, os alunos so orientados
ao estudo, ao desenvolvimento e documentao dos
procedimentos realizados para seus projetos.
Paralelamente para cada etapa de projeto, documentosmodelos foram elaborados, no intuito de manter um
padro de documentao de projeto e facilitar a
avaliao dos trabalhos. Alcanando-se o primeiro
objetivo da disciplina, na oitava aula, realizado um
Workshop, onde os alunos testam por completo seus
projetos em um kit de desenvolvimento de projetos
baseado em dispositivo lgico programvel (FPGA
Field Programmable Gate Arrays), e apresentam seus
trabalhos. Neste evento so incentivados a discusso
dos trabalhos, com aportes de novas idias baseadas na
experincia adquiridas pelos alunos.
Uma apostila focando o segundo objetivo da
disciplina, que o de identificar e caracterizar um
perifrico e desenvolver pequenos sistemas com o uso

4. Materiais e mtodos
As condies mnimas de utilizao de
equipamentos e material didtico existente em
laboratrio para realizao das atividades prticas
devem estar funcionalmente disponveis desde o
primeiro dia de aula. O material didtico constitudo
de kits DE2-Altera de dispositivos lgicos
programveis para cada grupo de alunos, capazes de
ser reconfigurados por software Quartus II - Altera [8],
[9]. Os kits de dispositivos lgicos programveis
necessitam de um microcomputador com todo o
software necessrio ao desenvolvimento do projeto,
instalados em cada bancada para cada grupo de alunos.
A caracterizao da forma semi-presencial da
disciplina, onde o estudo e o desenvolvimento das
etapas de projeto do processador e da programao de
pequenos sistemas com o uso de perifricos, bem como
o envio dessas atividades de cada etapa semanalmente
ao professor demandam o apoio de uma plataforma de
ensino a distncia. A plataforma Moodle Minha
UFMG utilizada intensamente, onde professores,
monitores-bolsistas e alunos a utilizaro como meio
para consulta ao material didtico, esclarecimento de
dvidas, troca de informao atravs dos fruns para
realizao das atividades propostas. Semanalmente,
todos os grupos de alunos devem submeter suas tarefas
de cada etapa de projeto para apreciao e comentrios
do professor dentro de um prazo estabelecido pelo
mesmo.
As atividades presenciais semanais em laboratrio
consistem na realizao de testes por parte dos alunos
das atividades a distncia que desempenharam na
semana. Esses testes so realizados utilizando-se os
kits
de desenvolvimento
de projetos [8].
Esclarecimentos de dvidas remanescentes com o

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)


d) Um documento contendo as especificaes de
requisitos mnimas do processador proposto.
e) Dez guias de projeto, as quais orientaro os
alunos nas atividades de documentao,
implementao e validao de suas solues
para submisso da tarefa semanal.
f) Material para referncia no desenvolvimento
dos projetos. Esse material fica disponvel no
ambiente Moodle Minha UFMG para acesso
dos alunos e tambm no repositrio de objetos
de aprendizagem GIZ-UFMG [10] e est
organizado em sumrios, aula a aula (vide
Figura 2). Esto disponveis materiais para
aprendizado e consulta sobre aspectos
relacionados Linguagem de Descrio de
Hardware; Material de referncia e usurio do
Kit de desenvolvimento e do ambiente de
programao que o aluno dever usar para
validar a sua soluo.
g) Um modelo para elaborao de cada etapa de
projeto do processador, que cada grupo de
alunos dever submeter apreciao do
professor pelo ambiente Moodle.
h) Um exemplo completo do projeto de um
processador, seguindo as etapas do
seqenciamento de projeto apresentado,
acompanhado
de
toda
documentao
necessria: cdigos e simulaes utilizados no
projeto, conforme modelo sugerido pelo
professor.
i) Um roteiro sugestivo de avaliao de
trabalhos dos workshops para o professor.
j) Um documento informativo para o aluno
contendo os critrios que so utilizados na
avaliao dos workshops.
k) Uma apostila com a teoria mnima necessria
ao
projeto
de
sistemas
com
microcontroladores e seus perifricos.

professor da disciplina so tambm tratadas


presencialmente nesses encontros. Ainda dentro do
tempo de aula, o professor avalia a participao
individual e o conhecimento de cada aluno sobre os
assuntos tratados na etapa.
Um recurso didtico importante desenvolvido para
a aplicao dessa metodologia de ensino a vdeoaula. As vdeo-aulas foram construdas a partir de
narraes de animaes produzidas respectivamente
com os softwares Camtasia Studio e Microsoft
PowerPoint. As vdeo-aulas apresentam de forma
concisa e objetiva toda a teoria e o sequenciamento de
projeto, apresentando as etapas para o desenvolvimento
de um processador. Desta forma, um exemplo do
projeto de um processador completo apresentado nas
vdeo-aulas, sugerindo ao aluno como aliar a teoria
prtica. A Figura 1 mostra o sequenciamento de etapas
de projeto do processador proposto ao aluno
desenvolvido com base nos livros-texto citados [4][5].
Adicionalmente foram elaboradas dez guias de projeto
que orientam passo a passo os alunos no
desenvolvimento e documentao de suas solues nas
referidas etapas de acordo com modelos fornecidos
para cada fim.

Figura 1. Sequenciamento do Projeto.

A Figura 2 mostra um sumrio do curso


organizado no ambiente Moodle. Cada sumrio est
associado a uma aula e a uma etapa do sequenciamento
do projeto do processador. Todas as aulas so
apresentadas de forma padronizada, contendo os
seguintes itens: objetivo da aula; material que o grupo
dever produzir; material para estudo e atividades
propostas, separadas em documentos, vdeo-aulas e
softwares. Cada aula tambm apresenta um link para
submisso das tarefas da etapa de projeto para
avaliao e comentrios do professor.

Em sntese geral o material didtico produzido para a


disciplina composto pelos seguintes artefatos:
a)

Um planejamento de aulas sugestivo para a


parte terica da disciplina, contendo o assunto
que dever ser tratado em cada aula, material
de referncia e a conexo com as atividades
fim, tratadas em laboratrio.
b) Um planejamento de atividades em
laboratrio, contendo o objetivo de cada
atividade presencial, material que dever ser
produzido pelo aluno na etapa e material de
referncia disponvel ao aluno para a
execuo da etapa.
c) Nove vdeo-aulas com animaes explicando
a base terica necessria para o aluno projetar,
documentar e desenvolver sua prpria soluo
para a situao-problema proposta.

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)


semestre, tambm so apresentados os instrumentos
que ele ter a sua disposio para desenvolver a sua
prpria soluo e o modo de utiliz-los. Nas seis aulas
subsequentes do mdulo 1, cada dupla dever criar,
desenvolver, testar e documentar sua soluo com o
acompanhamento e a orientao presencial do
professor responsvel pela turma. Na ltima aula do
mdulo, cada grupo dever apresentar sua soluo para
a turma. Essa ltimo aula presencial funciona como um
workshop. As ltimas sete aulas compem o segundo
mdulo, onde pretende-se alcanar o segundo grande
objetivo da disciplina. O objeto de aprendizado
principal desse segundo mdulo a apostila, que
apresenta sete situaes-problemas, que induzem o
grupo de alunos a criarem suas prprias solues.
A avaliao da disciplina realizada por meio de
avaliaes parciais semanais e no final de cada
mdulo. Os alunos so arguidos individualmente
semanalmente e so atribudos conceitos ao grupo e a
cada aluno do grupo, em cada etapa de projeto.

Figura 2. Organizao da Disciplina no Moodle

A Figura 3 apresenta um slide de uma das nove


vdeo-aulas, visualizada com o auxlio de um
navegador de Internet. Observa-se uma via de dados de
um processador simples de trs instrues. A esquerda
dessa imagem observa-se um recurso utilizado na
criao dos vdeos, de grande utilidade para o aluno,
que a navegao por slides utilizados na produo da
aula. Esse recurso possibilita ao aluno interromper e
voltar a assistir o vdeo de onde parou sem se
preocupar em tomar nota do tempo do momento no
qual parou de assistir.

5. Resultados
Os objetos de aprendizado desenvolvidos segundo
a metodologia do Ensino Orientado a Projetos se
encontram disponveis, comunidade da UFMG, no
repositrio de objetos de aprendizado do GIZ Rede
de Desenvolvimento de Prticas de Ensino Superior,
vinculado a Pr-Reitoria de Graduao da UFMG sob
a licena Creative Commons [10].
Essa metodologia de ensino com todos os objetos
de aprendizagem desenvolvidos vem sendo aplicada h
dois semestres na disciplina SPP (2010/2 e 2011/1).
Resultados quantitativos a partir de enquetes com os
alunos sobre as disciplinas e os professores so obtidos
e divulgados semestralmente pela Pr-Reitoria de
Graduao da UFMG. Um total de 269 alunos j
cursou esta disciplina utilizando essa metodologia de
ensino. A figura 4 mostra quantitativamente a
afirmao sobre o aumento da motivao dos alunos na
disciplina diante da metodologia de ensino proposta
nesse trabalho. O grfico de barras da Figura 5 mostra
que o aluno considera que seu aprendizado melhorou
com a nova metodologia aplicada nos semestres de
2010/2 e 2011/1. Ainda como resultado quantitativo da
mesma enquete, 63% e 62% (respectivamente em
2011/1 e 2010/2) contra 41% e 40% (respectivamente
em 2010/1 e 2009/2) afirmam que o material didtico
considerado como bom a muito bom. Os alunos
afirmam que as vdeo-aulas propiciam uma base
primordial para o desenvolvimento de seus projetos.
Por fim, os documentos que acompanham o material
didtico e o desenvolvimento de um exemplo de
projeto de um processador so objetos de
aprendizagem essenciais para o sucesso da aplicao
dessa metodologia.

Figura 3. Imagem com o Trecho de uma Vdeo-aula

4.1. Aplicao do material produzido


Na primeira aula de SPP apresentada a proposta
da disciplina, mostrando os objetivos, a metodologia de
trabalho e o material que o aluno ter a disposio para
desenvolver sua soluo, bem como as formas das
atividades avaliativas. Os alunos so agrupados em
duplas ou trios, para realizar todas as atividades
propostas no semestre. Cada grupo seguir seu prprio
projeto, tomar suas prprias decises e propor uma
soluo. Incentiva-se a discusso entre os membros de
um grupo para definir as possveis decises sobre as
etapas de projeto do processador.
A disciplina de SPP tem dois objetivos claros e
distintos, citados na seo 2. Cada objetivo tratado
em um mdulo composto por sete aulas de 2h/aula. No
incio do primeiro mdulo apresentado ao aluno uma
situao-problema do mdulo, ou seja, o documento de
requisitos mnimos de projeto do processador no

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Agradecimentos

50%

A Pr-Reitoria de Graduao
o da UFMG pelo suporte
financeiro ao projeto de desenvolvimento do material
didtico apresentado nesse artigo.

40%
30%

Ruim

20%

Mdio

10%

Bom

0%

7. Referncias

Muito bom

[1] Donoso-Garcia,
Garcia, P. F., Martins, L. F.; Cortizo, P. C.
Ensino Orientado ao Projeto: Uma Experincia para o
Ensino de Eletrnica nas disciplinas de laboratrio de
Eletrnica
nica e Eletrnica de Potncia. Eletrnica de
Potncia (Florianpolis), v. 13, p. 109-116,
109
2008.

Figura 4. Grau de motivao com relao


disciplina

60%
50%
40%
30%
20%
10%
0%

[2] Donoso-Garcia,
Garcia, P. F., Torres, L. Ensino Orientado
ao projeto desafio: uma experiencia para o ensino de
controle, instrumentao e eletrnica. In: Congresso
Brasileiro de Educao em Engenharia, 2007,
2007 Curitiba.
XXXV COBENGE 2007. p. 3B05--1-3B05-15.

Ruim
Mdio

[3]] Tanenbaum, A. S. Organizao Estruturada de


Computadores. 5 Edio,
o, Prentice Hall, 2006.

Bom

[4]] Vahid, F. Sistemas Digitais: Projeto, Otimizao e


HDLs, Bookman, 2008.

Muito bom

[5]] Patterson, D. A., Hennessy, J. L. Organizao e


Projeto de Computadores - A Interface Hardware/
Software.. 3a. Edio. Editora Campus, 2005.

Figura 5. Meu aprendizado na disciplina

6. Consideraes finais

[6] de Oliveira,
veira, A. S. e Andrade, F. S. Sistemas
Embarcados - Hardware e Firmware na Prtica. 1a.
Edio. Editora rica, 2006.

As vantagens da adoo dessa metodolo


metodologia de
ensino so muitas: (i) Alunos mais motivado
motivados para
projetar, tomar decises de projeto e analisar o impacto
das decises tomadas. Cabe-lhes
lhes desenvolver uma
postura ativa perante o processo de aprendizagem e
reconhecer que o professor no mais o nico a
decidir sobre os caminhos a serem seguidos. (ii) Para o
professor, essa metodologia de ensino
ensino-aprendizagem
proporciona uma dinmica constante a cada seme
semestre,
em que uma nova situao-problema
problema elaborada e
proposta aos alunos. O professor o condutor da
formao da experincia
ia prtica do aluno, mostrando
os possveis
is rumos a serem tomados e corrigindo erros
conceituais que possam surgir no percurso
percurso. Como
desvantagem: (i) necessita dedicao intensiva do
professor; (ii) demanda ferramenta de en
ensino a
distncia bem instalada, funcional e disponvel
disponvel.
Vrios tipos de objetos de aprendizagem podem
ser desenvolvidos segundo essa metodologia, desde
que o princpio que a norteia seja obedecido, ou seja,
aliar a teoria prtica para o desenvolvimento da
situao-problema, conduzindo o aluno as suas
prprias escolhas e decises
ses de projeto. Dentre os
materiais desenvolvidos,, cabe destacar que as
vdeo-aulas so um dos objetos de ap
aprendizado
principais desenvolvidos nesse trabalho.

[7]] Oliveira Junior, M., Duarte, R. O. Apostila sobre


Introduo ao Projeto com Microcontroladores e
Programao
o de Perifricos. DELT EE UFMG,
2011. Disponvel por acesso restrito a comunidade da
UFMG
em:
<https://dspaceprod01.grude.ufmg.br/dspace/handle/O
https://dspaceprod01.grude.ufmg.br/dspace/handle/O
AUFMG/545/browse?type=title>,
>, acessado em 24 de
agosto de 2011.
[8] Altera Corporation: DE2 Development and
Education Board User Manual Version 1.3, 2006.
Disponvel
para
download
em:
<http://www.abramovbenjamin.net/altera_
http://www.abramovbenjamin.net/altera_de2.pdf>,
acessado em 24 de agosto de 2011..
[9] Altera Corporation: Introduction to Quartus II
Software - Version 10.0, 2011. Disponvel em:
<http://www.altera.com/literature/manual/archives/int
http://www.altera.com/literature/manual/archives/int
ro_to_quartus2.pdf>, acessado
cessado em 24 de agosto de
2011.
[10] Repositrio da Rede de Desenvolvimento de
Prticas de Ensino Superior,
or, Pr-Reitoria
Pr
de
Graduao - UFMG. Disponvel por acesso restrito em:
<https://dspaceprod01.grude.ufmg.br/dspace/handle/O
https://dspaceprod01.grude.ufmg.br/dspace/handle/O
AUFMG/545/browse?type=title>,
>, acessado em 24 de
agosto de 2011.

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Simuladores de Memria Cache, um Estudo Comparativo Direcionado ao


Ensino
Matheus Arleson Sales Xavier, Jardel das Chagas Rodrigues, Otvio Alcntara de Lima Jnior
Laboratrio de Eletrnica e Sistemas Embarcados (LAESE)
Instituto Federal de Educao, Cincia e Tecnologia do Cear (IFCE)
Av. Contorno Norte, 10 CEP: 61925-315 Maracana, Cear
matheusarleson@gmail.com, jardel.ifce@gmail.com, otavio@ifce.edu.br
disciplina de Arquitetura de Computadores. Motivar os
alunos a estudar Arquitetura de Computadores pode ser
um problema quando o aluno acredita no ser
necessrio conhecer arquitetura para desenvolver
softwares. O desafio em motivar os alunos pode no
estar somente na disciplina de Arquitetura de
Computadores, mas em todas as disciplinas de um
curso, quando estas deixam ausente a correlao de
importncia com Arquitetura de Computadores [1].
Portanto, devem-se utilizar mecanismos para
solucionar essa problemtica e tornar a disciplina mais
atrativa e menos complexa para os alunos. A utilizao
de simuladores didticos contribui para uma melhor
compreenso do assunto, uma vez que esses so
capazes de traduzir para a realidade os conceitos
tericos atravs de uma introduo de forma clara e
didtica dos mesmos [2].
medida que a complexidade e variedade de
sistemas computacionais aumentam, a adequao
desses como ferramentas pedaggicas nos cursos de
Arquitetura de Computadores diminuem. Em
consequncia disso, muitos instrutores esto se
voltando para simuladores como auxiliares de ensino,
muitas vezes empregando o valioso tempo de
ensino/pesquisa para constru-los [3]. Um simulador de
memria cache pode ser utilizado para facilitar as aulas
e auxiliar no aprendizado de sistemas computacionais
modernos.
O objetivo geral do artigo realizar um estudo
comparativo de alguns simuladores de memria cache e
sua empregabilidade no ensino, com o intuito de
facilitar o processo de seleo da ferramenta usada
como apoio ao ensino em cursos introdutrios de
arquitetura de computadores. Alguns simuladores j
foram propostos com esse objetivo e os mesmos sero
analisados no decorrer desse trabalho, dentre os quais
foram selecionados: KSH [4], MSCSim [5], DCMSim

Resumo
O conceito de memria cache um tpico
importante visto principalmente na disciplina de
Arquitetura de Computadores, em cursos da rea de
computao. Esse um assunto no qual muitos alunos
sentem dificuldades, isso se deve ao cunho
extremamente terico das aulas na maioria dos cursos
ofertados. Um simulador se mostra uma ferramenta
importante neste cenrio. Este artigo apresenta um
estudo comparativo entre os principais simuladores de
memria cache disponveis, visando avaliar sua
aplicabilidade como ferramenta de apoio ao ensino em
cursos introdutrios de arquitetura de computadores.
O estudo aponta que um dos principais empecilhos
aplicao destas ferramentas a dificuldade em
localizar estes aplicativos.

1. Introduo
No decorrer da evoluo dos sistemas
computacionais, a diferena de velocidade entre a
unidade central de processamento e a memria
principal se tornou um obstculo ao aumento do
desempenho dos computadores. Uma das formas
encontradas para mitigar essa problemtica foi o
emprego de uma pequena poro de memria veloz e
de custo mais elevado, denominada memria cache,
localizada entre o processador e a memria principal.
A memria cache armazena temporariamente os
dados e instrues que possuem maior probabilidade
de serem usados pelo processador, reduzindo o nmero
de acessos memria principal. A memria cache
largamente empregada nas arquiteturas computacionais
modernas. Sua utilizao visa melhora de
desempenho do sistema.
O conceito de memria cache est inserido na

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

[6] e o Dinero IV [7]. O restante do trabalho est


organizado em cinco sees. A seo 2 traz o conceito
de memria cache e explica brevemente o seu
funcionamento. A seo 3 do artigo detalha cada
simulador. A seo 4 do artigo exibe os parmetros de
comparao e caractersticas desejveis em um
simulador utilizado no ambiente ensino-aprendizagem.
A seo 5 faz um estudo comparativo dos simuladores.
A seo 6 mostra as concluses deste artigo.
Finalmente, a ltima seo mostra as referncias
utilizadas nesse trabalho.

probabilidade de serem acessadas nas prximas


referncias de memria .

2. Memria cache
Figura 2. Esquema de uma memria cache
[9].

Ao passar dos anos, os processadores e outros


dispositivos conseguiram um aumento incrvel na
velocidade de processamento das informaes, o que
no foi acompanhado pela memria principal,
tornando-se lenta e atrasando as demais operaes [8].
Na Figura 1 mostrada claramente essa diferena.
Nesse mbito, precisava-se de uma unidade
intermediria que acelerasse as operaes que a
envolviam. Ao analisar o comportamento dos
programas, percebeu-se que o processador tende a
referenciar endereos de memria prximos, devido ao
grande uso de estruturas de repeties e dados,
localizados um aps o outro na memria [9].

Para que esta operao ganhe velocidade, a cache


fica prxima ao processador e feita deste mesmo
material. Apenas quando um dado referenciado no
est na cache, um acesso memoria principal feito.
A Figura 3 apresenta um resumo das operaes
envolvidas na busca de uma posio de memria em
um sistema empregando memria cache.

Figura 3. Funcionamento da cache [9].


Embora existam diversas implementaes, poucos
elementos bsicos de projeto servem para classificar e
diferenciar as diversas arquiteturas. O primeiro deles: o
tamanho da memria cache. Quanto maior, mais caro e
rpido, at certo ponto, fica o sistema. Como a cache
feita do mesmo material do processador, o custo por bit
muito elevado e o tempo de procura maior. A
funo de mapeamento determina como a cache
preenchida, podendo ser de forma direta: cada bloco da
memria principal mapeado para apenas uma linha de
cache, associativa: um bloco pode ser alocado em
qualquer linha da cache, associativa por conjunto: a
cache dividida em conjuntos, com certo nmero de
linhas cada e um bloco pode estar associado a qualquer

Figura 1. Evoluo de desempenho Memria x CPU [8].


A Figura 2 mostra o posicionamento da memria
cache no sistema, onde a mesma pode ser dividida em
vrios nveis de acordo com a proximidade da CPU,
proporcionando uma melhoria no desempenho global.
A cache mantm um bloco de informaes,
composto das posies de memria mais recentemente
utilizadas, como tambm o contedo das posies de
memria prximas, pois estas possuem alta

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

linha de um conjunto j pr-determinado.


Os algoritmos de substituio determinam como os
dados sero substitudos, podendo ser pelas tcnicas:
Least Frequently Used (LFU), os dados menos
frequentemente utilizados sero substitudos; First In
First Out (FIFO), o primeiro dado a entrar o primeiro
a sair; Least Recently Used (LRU), os dados menos
recentemente usados so descartados primeiro; ou de
forma aleatria. A poltica de escrita determina como
os dados sero atualizados na memria principal,
podendo ser de forma simultnea: write through ou os
dados so escritos temporariamente na cache e depois
na memria, o que denominamos write back. Por fim, o
tamanho do bloco, que determina a quantidade de
dados de um bloco alocado e a quantidade de nveis,
para um sistema com vrios nveis de cache.
Atualmente a memria cache vem evoluindo e j no
est apenas presente nos processadores, mas em quase
todos os dispositivos que necessitam dessa acelerao,
como os discos-rgidos, por exemplo. Podemos
encontrar tambm sistemas com vrios nveis de cache
ou caches separadas para dados e instrues.

O seu memory trace pode ser um arquivo de texto ou


um comando via teclado. O programa possui
basicamente trs ambientes de execuo: o primeiro,
logo aps o menu do programa, o controle da
simulao, que permite tanto a observao passo-apasso, quanto visualizar diretamente o final da
simulao; o segundo, abaixo do controle da
simulao, onde possvel observar as informaes;
o terceiro, direita, informa o contedo do memory
trace.

3. Simuladores

3.2 DCMSim

Esta seo analisa as caractersticas presentes nos


simuladores, exibindo suas principais funcionalidades e
modos de operao.
No presente artigo foram escolhidos quatro
simuladores para realizao do estudo, entretanto
outras ferramentas podem ser encontradas, como o
SMPCache [10] e o Loop-way Cache [11], por
exemplo.
Alguns critrios para a escolha dos
simuladores foram adotados, a saber: ou grau de
exibio dos simuladores em relao s pesquisas
realizadas na web sobre o tpico de memria cache e as
documentaes encontradas referentes aos mesmos,
sejam estas artigos ou pginas da internet.

DCMSim (Didatic Cache Memory Simulator) um


simulador que foi projetado na Digital and
Computational System Groups (GSDC) na Pontifcia
Universidade Catlica. A primeira verso foi iniciada
como um trabalho universitrio, enquanto que a ltima
verso foi desenvolvida como um trabalho de
graduao, ambos foram escritos em Java. A ltima
verso, selecionada para o estudo, implementa as
seguintes arquiteturas de cache: mapeamento direto;
associativa e associativa por conjunto. Polticas de
substituio: FIFO e LRU. Polticas de escrita: write
back e write through. Os dados de entrada so
representados pelo conjunto de acessos memria.
O memory trace apresenta-se na forma de um
arquivo de texto onde cada linha representa um acesso
memria e tem suas linhas neste formato: <endereo>
<indicao de (d)ado ou (i)nstruo> <indicao de
(l)eitura ou (e)scrita> <dado/instruo>. Possui um
recurso denominado MissAnalyst que analisa os acertos
e erros dos acessos realizados na memria cache. Na
seo denominada LogBox, as estatsticas do tempo de
acesso so exibidas, tanto da iterao corrente, como
de toda a simulao. Isso possibilita gerar um arquivo
de relatrio contendo a sequncia das ocorrncias,
configuraes e os resultados da simulao.

Figura 4. Viso geral do simulador KSH.

3.1 KSH
O KSH foi desenvolvido na Pontifcia Universidade
Catlica de Minas Gerais e desenvolvido na linguagem
de programao Java. Esta ferramenta pode ser
executada em modo grfico ou via console, ambos
possuindo as mesmas funcionalidades. O KSH
implementa as trs arquiteturas de memria cache:
mapeamento direto; mapeamento associativo e
mapeamento associativo por conjunto. Suas polticas
de substituio so FIFO e LRU. Possui tcnicas de
escrita: write back e write through e o acesso
memria pode ser de modo sequencial ou paralelo.

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

3.4 Dinero IV
Desenvolvido pelo Dr. Jan Edler da NEC Researchs
Corporation e pelo prof. Mark D. Hill do
Departamento de Cincia da Computao da
Universidade de Wisconsin. O Dinero IV um
simulador de memria cache baseado nas referncias
do memory trace que permite a simulao de caches
multi-nveis dentre seus mais diversos tipos, como, por
exemplo, uma cache separada para instruo e uma
para dados. Possui melhor desempenho e portabilidade
do que seu antecessor, o Dinero III.
O Dinero IV no apresenta o tempo decorrido da
simulao, sendo a sua principal funcionalidade o
clculo das taxas de acerto e de erro dos acessos feitos
memria cache. Suas polticas de substituio so:
LRU; FIFO ou aleatria. Os vrios parmetros de cada
cache podem ser configurados separadamente em
relao aos fatores como: arquitetura; poltica e
estatsticas. Durante a inicializao realizada a
configurao, uma cache por vez, comeando por cada
nvel, desde a memria principal. Aps a inicializao,
os nveis superiores so alimentados a cada referncia
atravs por uma chamada simples de uma funo,
enquanto que os nveis mais baixos da hierarquia so
tratados de maneira automtica. O Dinero IV foi
testado nos ambientes: x86/Linux, Alpha/Linux,
Alpha/OSF, SGI/IRIX-6, RS6000/AIX, x86/Solaris, e
Sparc/Solaris.

Figura 5. Viso geral do DCMSim.

3.3 MSCSim
MSCSim (Multilevel and Split Cache Simulator), foi
desenvolvido na Pontifcia Universidade Catlica de
Minas Gerais. Desenvolvido tambm em Java e
implementa as arquiteturas de cache: mapeamento
direto; mapeamento associativo e associativo por
conjunto. Polticas de substituio: FIFO e LRU.
Polticas de escrita: write back e write through. Acesso
memria: paralelo e sequencial. O programa possui
interface grfica composta de vrios ambientes, sendo a
janela principal composta de um menu principal e um
espao onde mostrado os arquivos usados
recentemente (configuraes e traces). Seu memory
trace pode ser feito atravs de um trace generator no
programa, o qual permite a criao manual ou
randmica seguindo o formato: <endereo>
<(L)eitura/(E)scrita> <(I)nstruo/(D)ado>.
Quanto configurao da arquitetura, pode
ser elaborada ou ser importada de um arquivo prdefinido. possvel dividir a cache em vrios nveis e
diferenciar as caractersticas de cada nvel. Depois de
configurada a arquitetura e informado o trace, surge o
ambiente de simulao uma janela com abas:
simulao, memria cache, memria principal e
estatsticas a simulao pode ocorrer passo-a-passo
ou diretamente.

Figura 7. Resultado de uma simulao


realizada pelo Dinero IV.

4. Comparao entre os simuladores


Essa seo apresenta a comparao entre os
simuladores selecionados, atravs da anlise de seus
respectivos artigos.

Figura 6. Viso geral do MSCSim.

10

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

pertinentes apenas aos simuladores Dinero IV e


MSCSim.
Em relao ao memory trace, a maioria dos
simuladores usa arquivos de texto elaborados pelo
usurio, baseados em um modelo pr-definido. Embora
no seja uma tarefa to complexa, uma funo
randmica que gere o memory trace importante,
sendo o MSCSim o nico simulador que possui tal
recurso. O Dinero IV utiliza um trace gerado pelo
prprio programa.
No quesito intuitividade, o que mais demonstrou
deficincia foi o Dinero IV, pois no apresenta
interface grfica e nem comandos simples para as
operaes, que so exclusivamente via console.
Todos os outros possuem interfaces grficas,
variando em complexidade. A ferramenta que se
mostrou mais completa foi o MSCSim, apresentando
uma interface bem estruturada.
Na anlise da visibilidade de informaes, o
MSCSim se destaca, exibindo uma gama de
informaes em sua simulao, alm de possuir
animaes que ajudam a visualizar as modificaes. O
DCMSim e o KSH apresentam apenas as informaes
bsicas e o Dinero IV no apresenta informaes
durante sua simulao, apresentando apenas um
arquivo de relatrio ao trmino.
O MSCSim possui um recurso de importao de
arquivos de extenso xml com arquiteturas prdefinidas para este fim. J o KSH possui um script de
configurao, porm a edio do mesmo mais
trabalhosa. Todos os outros no apresentam nenhuma
forma de implementao de tutoriais.
A tabela 1 mostra as caractersticas bsicas, que
foram os parmetros de comparao existentes nos
simuladores, e outras caractersticas adicionais que se
mostraram presentes nos mesmos.

4.1 Parmetros de comparao


Aps a anlise dos simuladores, algumas
caractersticas fundamentais foram discutidas e essa
seo mostra os requisitos essenciais desejados em um
simulador.
Como a interface grfica a forma de interao com
o usurio, esta deve ser intuitiva, de forma que a
ferramenta seja fcil de utilizar. importante que o
processo de utilizao do ambiente de simulao
acontea em etapas. O usurio deve passar por cada
etapa, inserindo as informaes solicitadas sobre a
arquitetura simulada at a concluso da simulao e
exibio dos resultados.
A visibilidade das informaes fundamental, a
ferramenta deve mostrar como feito o acesso
memria cache, atravs da exibio de todos os
parmetros envolvidos no controle da mesma. Ao final
da simulao, esperado um relatrio, cujo contedo
mostraria uma descrio detalhada do desempenho do
sistema.
Para evitar erros, a gerao do memory trace deve
seguir um modelo fcil e deve ser feita de forma
manual ou aleatria dentro do aplicativo.
essencial a disponibilizao do aplicativo e de seu
cdigo fonte. Alguns dos trabalhos desenvolvidos no
esto disponveis para download e o contato dos
desenvolvedores no mais vlido. Aps o
desenvolvimento da ferramenta, esta deve ser
disponibilizada de forma simples, atravs, por
exemplo, de sites que ofeream hospedagem
permanente.

4.2 Estudo comparativo


Aps a anlise dos artigos dos simuladores de
acordo com os critrios escolhidos, foi possvel
verificar que a maioria dos simuladores analisados no
atende a alguns critrios.
Dos simuladores selecionados apenas o Dinero IV
no apresenta uma cache dividida para dados e
instrues, enquanto que todos os outros possuem tal
recurso.
Em relao quantidade de nveis de memria
cache apenas o KSH e o DCMSim no apresentam a
possibilidade de realizar simulaes com vrios nveis
de cache.
Os tipos de acesso sequencial e paralelo, bem como
o tempo de cada acesso so caractersticas apenas do
KSH e do MSCSim, os outros simuladores no
disponibilizam tal opo.
Os erros de compulsrio, conflito e capacidade que
podem ocorrem em um acesso memria cache so

Tabela 1. Caractersticas gerais pertinentes


aos simuladores

11

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

estudo comparativo, de modo a facilitar a escolha de


uma ferramenta de simulao que possa ser empregada
na disciplina de arquitetura de computadores.

5. Resultados
Todos os simuladores apresentaram problemas de
disponibilidade do aplicativo e do cdigo fonte. O
DCMSim possui o aplicativo disponvel, porm em
uma verso incompleta. O Dinero IV disponvel no
site do autor, enquanto que para obter o MSCSim,
necessrio entrar em contato com seus autores, os quais
no retornaram os inmeros contatos realizados. No
foram encontradas fontes para o KSH.
A partir do estudo comparativo realizado, podemos
verificar que h uma grande carncia nas ferramentas
de simulao. Mesmo havendo vrios trabalhos
publicados, no possvel encontrar os simuladores,
exceto o Dinero IV, tanto por estes no estarem mais
disponibilizados, quanto pela impossibilidade de
contato com os idealizadores.
Dos trabalhos selecionados, o MSCSim se destaca,
sendo a ferramenta mais completa em todos os quesitos
avaliados em nossa anlise. Ele possui a interface com
mais informaes e as animaes permitem uma
melhor visualizao das mudanas durante a simulao.
J o Dinero IV obteve o pior desempenho. A operao
via console e a falta de informaes durante a
simulao, tornam o uso e a compreenso difceis,
sendo no indicado para o ensino.

7. Referncias
[1] Coutinho, L. M. N.; Mendes, J. L. D.; Martins, C. A. P.
S. MSCSim Simulador de Memria Cache, Split e
Multinveis, VI WSCAD, 2005, pp. 193-196.
[2] Djordjevic, J.; Nikolic, B.; Mitrovic, M. A Memory
System for Education, The Computer Journal, Vol. 48,
No. 6, 2005, pp. 630-641.
[3] Yurcik, W.; Wolffe, G. S.; Holliday, M. A; A Survey
of
Simulators
Used
in
Computer
Organization/Architecture Courses, Summer Computer
Simulation Conference (SCSC), Society for Computer
Simulation (SCS), 2001.
[4] Ribeiro, A. S.; Duarte, R. P. KSH: Simulador de
memria cache com carregamento dinmico de mdulos
e execuo de script de configurao, IV Workshop em
Sistemas Computacionais de Alto Desempenho, 2003,
pp. 160-163.
[5] Cordeiro, E. S.; Stefani, I. G. A.; Soares, T.; Martins, C.
A. P. S. DCMSim: Didactic Cache Memory
Simulator, Frontiers in Education Conference FIE
2003, Boulder Colorado, v. 2003, pp. F1C14-F1C19,
2003. PDF.

6. Concluses
Nesse ambiente conclui-se que apenas um nico
simulador atende s principais caractersticas que um
simulador didtico deve possuir. Porm, o programa
no foi localizado e as inmeras tentativas de contato
com os autores no obtiveram xito.
Dessa maneira, os objetivos do artigo foram
alcanados e foi percebida a carncia da existncia de
simuladores que possam auxiliar o ensino sobre
memria cache.
Assim, surge a necessidade de que sejam elaborados
novos simuladores de acordo com os estudos j
realizados,
onde
sejam
implementadas
as
funcionalidades expostas nesse artigo. As novas
ferramentas
devem,
primeiramente,
ser
disponibilizadas de forma simples, atravs, por
exemplo, de um servio de hospedagem permanente de
arquivos. O projeto da interface grfica deve primar
por criar um ambiente agradvel, no qual o aluno possa
obter as informaes do funcionamento e de
desempenho de vrias organizaes diferentes de
memria cache.
Juntamente com os artigos analisados nesse estudo,
este trabalho complementa as pesquisas realizadas
sobre simuladores de memria cache mostrando um

[6] Coutinho, L. M. N.; Mendes, J. L. D.; Martins, C. A. P.


S. MSCSim Multilevel and Split Cache Simulator,
IV Workshop em Sistemas Computacionais de Alto
Desempenho, 2006, pp. 193-196, (in portuguese).
[7] Edler, J. Dinero IV Trace-Driven Uniprocessor Cache
Simulator.
Disponvel
em:
http://www.cs.wisc.edu/~markhill/DineroIV/.
[8] Hennessy, J. L.; Patterson, D. A. Computer
Organization and Design: The Hardware/Software
Interface, 3rd Edition, Morgan Kaufman, 2005.
[9] William Stallings. Organizao e Arquitetura de
Computadores, 5 Edio, Pearson Prentice Hall, 2002.
[10] Vega M. A.; Martin R.; Zarallo F.A.; Snchez J. M.;
Gmez, J. A. "SMPCache: Simulador de Sistemas de
Memoria Cach en Multiprocesadores Simtricos".
Actas de las Xi Jornadas de Paralelismo, 2000, pp.3-8.
[11] Moreira, L.; Pontes, B.; Fernandes, G.; Vidal, J. M.;
Wanderley Netto, E. B.; Loop-way Cache. In Anais do
Workshop em Sistemas Computacionais de Alto
Desempenho, Oct, 24-27, pp. 197-200 Rio de Janeiro,
Brazil, 2005.

12

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Extenso do Ptolemy para o ensino de Organizao e Arquitetura de


Computadores
Andr L. L Torres, Alisson V. Brito
Universidade Federal da Paraiba
Programa de Ps-Graduao em Informtica
{atorres, alissonbrito}@dce.ufpb.br
Resumo

concorrente que trata atores como sendo os


elementos primitivos da computao concorrente
digital [6].
Dada as limitaes das solues e propostas
existentes, este trabalho prope uma metodologia para
o ensino de Organizao e Arquitetura de
Computadores apoiada pela simulao de sistemas
concorrentes baseada em atores e pela ferramenta
Ptolemy II, desenvolvida pela Universidade de
Berkeley. O objetivo geral deste trabalho prover um
simulador que possibilite um ambiente didtico onde
os alunos possam criar seus prprios modelos de
arquitetura de maneira simples, interativa e didtica.

A utilizao de simuladores na educao se faz


cada vez mais presente nas atividades pedaggicas.
Nesta nova realidade, vrias aplicaes visam facilitar
a construo do conhecimento por parte dos
professores em relao aos alunos, atravs de mtodos
dinmicos e expondo aulas para mltiplos ramos sem
haver grande esforo ou repeties desnecessrias.
Neste sentido, este trabalho apresenta uma extenso
desenvolvida numa ferramenta de modelagem e
simulao de sistemas concorrente baseada em atores,
denominada Ptolemy, para contribuir com o processo
de ensino-aprendizagem da disciplina de Organizao
e Arquitetura de Computadores. A extenso permite a
criao de roteiros didticos que abordam a disciplina
e a verificao automtica dos mesmos.

2. Trabalhos Relacionados
Os simuladores computacionais so recursos
tecnolgicos que podem auxiliar em diversas reas. No
contexto abordado neste trabalho, os simuladores
auxiliam os professores a provocar, favorecer e
orientar situaes controladas de ensino e
aprendizagem, pedagogicamente interessantes para o
nvel de ensino que deseja. Do ponto de vista
pedaggico, simuladores computacionais so softwares
teis e simples, uma vez que levam os alunos a
interagirem com os mesmos, o que lhes facilita a
compreenso de conceitos abstratos, leis e
caractersticas do mundo fsico.
Segundo Felix [4], em tal disciplina notvel a
necessidade de ferramentas grficas e didticas para
auxiliar o aprendizado. Especificamente para explicar a
arquitetura de processadores, pois so necessrias
muitas figuras para ilustrar os caminhos de dados e de
controle quando uma instruo executada.
Para a disciplina de Organizao e Arquitetura de
Computadores, podemos citar algumas ferramentas
voltadas para o campo da informtica educativa,
especificamente em uma das reas correlatas
(processadores) ao tema da pesquisa. Dentre os vrios
processadores, dos mais simples aos mais complexos,
destacamos o processador MIPS (Microprocessor

1. Introduo
A anlise dos sistemas computacionais atuais, seu
entendimento uma tarefa difcil, principalmente
embasado apenas na teoria. Logo, o estudo da
disciplina Organizao e Arquitetura de Computadores
podem ser facilitados com a utilizao de simuladores
[3], sendo uma abordagem benfica para que os alunos
entendam seu comportamento e possam visualizar a
execuo de programas para montagem real de uma
arquitetura.
Existem muitas tcnicas de ensino utilizando
simuladores para representar arquiteturas reais ou
hipotticas [2]. Estas tcnicas, porm, no permitem
uma abordagem construtivista onde os alunos possam
criar suas prprias arquiteturas.
Neste sentido, esse trabalho aborda uma
metodologia para modelagem e simulao de sistemas
concorrentes baseada em atores, utilizando um
Framework denominado Ptolemy [6]. A metodologia
abordada possui um grande potencial educacional
ainda pouco explorado. Onde um modelo de atores
definido como um modelo matemtico de computao

13

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

without Interlocked Pipe Stages). O MIPS uma


arquitetura de microprocessador projetada com
objetivo de oferecer alto desempenho na execuo de
cdigo compilado. Suas instrues so todas de 32 bits,
mesmo nos processadores de 64 bits, como forma de
manter a compatibilidade. Todas as operaes
aritmticas no MIPS utilizam valores contidos nos
registradores e os resultados tambm so colocados em
um registrador.
O WebMIPS [1] possui uma plataforma grfica
visualmente agradvel para simular a arquitetura MIPS
com pipeline. Ele possui a vantagem de ser uma
plataforma disponvel na Internet, proporcionando uma
interface dinmica, a qual o estudante pode ter acesso
sem ter que instalar mdulos do simulador.
O DIMIPSS [4] (Didact Interactive MIPS
Simulator) um software multiplataforma de
simulao da execuo (caminho de dados e de
controle) das instrues do MIPS Monociclo. Ele
recebe um programa em linguagem de montagem
(assembly), o converte para a linguagem de mquina e
representa graficamente o comportamento do caminho
de dados e de controle durante a sua execuo.
O MARS (Mips Assembly and Runtime Simulator)
desenvolvido por Vollmar e Sanderson [9] uma
ferramenta em Java com a IDE grfica implementada
usando Swing que simula um conjunto de instrues
do MIPS32. A verso atual a 3.8 e implementa 98
instrues, 36 pseudo-instrues e 17 chamadas de
sistemas.
Outra ferramenta o WinMIPS64 [8] que simula a
arquitetura pipeline do microprocessador MIPS64,
apresentando um conjunto de 32 registradores para
nmeros inteiros, e 32 para nmeros representados em
pontos flutuantes.
O WinMIPS64 [8] possibilita a visualizao da
instruo passando pelos pipelines, e ainda estatsticas
relativas execuo, como, por exemplo, quantidade
de ciclos que determinada instruo consumiu para
passar por todos os estgios do pipeline.
E por ltimo descrevemos o MipsIt [3] que um
ambiente de desenvolvimento integrado e que tambm
realiza a simulao do processador MIPS,
possibilitando a programao em alto nvel e
permitindo relacionar conceitos de programao com
organizao e arquitetura de computadores.
A Tabela 1 descreve uma anlise comparativa entre
ferramentas de simulao. Os tpicos abordados
baseiam-se nos estudos de [7] para avaliar o potencial
educacional dos simuladores.

Tabela 1: Anlise comparativa entre


ferramentas no ensino de Arquitetura
Computadores
Ferramentas
A
B
C
D
E
WebMIPS
AA
N
S
IL
S
DIMIPSS
BA
N
S
IL
N
MARS
BA
N
S
PL
N
WinMIPS64
BA
N
N
IL
S
MipsIt
AA
N
S IL/PL N
Ptolemy
BA/AA
S
S CL/IL N
Legenda:
(A)
(B)
(C)
(D)
(E)
(F)

as
de
F
S
N
S
S
S
S

Ambiente e Complexidade
Suporte ao Projeto
Apresentao Visual
Nvel de Simulao
Ensino a Distncia
Detalhamento da Implementao

Onde (A) avalia se o simulador apresenta noes


bsicas da introduo Organizao e Arquitetura de
Computadores. Os nveis de avaliao so Arquitetura
Bsica (BA) e Arquitetura Avanada (AA). O critrio
(B) avalia se o simulador inclui ferramentas de apoio
elaborao de modulos informatizados reutilizveis ou
apenas simula sistemas pr-definidos.
Para o critrio (C) existem aqueles simuladores
que detalham visualmente o funcionamento interno de
um sistema computacional seguindo um fluxo de
dados, ou aqueles onde os resultados so apresentados
de forma textual, com a possibilidade de seu ps
processamento. Ainda sobre os critrios utilizados, o
(D) diz respeito ao nvel de detalhamento do
comportamento de um objeto exposto, com base no
nivel mais baixo de granularidade suportado durante
uma seo de simulao. Podendo ser: Nvel de Clock
(CL), Nvel de Instruo (IL) ou Nvel de Programa
(PL). Para o critrio (E), com base na disponibilidade
de suporte para ensino distncia, os simuladores
podem ser divididos entre aqueles com e sem suporte
para o critrio. E finalizando o (F) avalia se os
simuladores fornecem detalhes da execuo visveis
durante a simulao.
Aps a anlise das ferramentas verificou-se que o
Ptolemy o nico que possibilita suporte ao projeto
(B), pois permite que o aluno crie seus prprios
elementos e possa reutiliz-los em diferentes nveis de
abstrao, como tambm em outros projetos e
arquiteturas. Alm disso, o Ptolemy possui algumas
vantagens em relao s outras ferramentas, como por
exemplo: i) no WebMIPS [1] as modificaes que
ocorrem nos caminhos de dados e controle durante a
execuo das instrues no so apresentadas; ii) O
DIMIPSS [4] no uma ferramenta web, dificultando
o ensino a distncia. Alm de s implementar um
pequeno nmero de instrues do MIPS monociclo; iii)

14

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

o MARS no possui suporte a depurao e no permite


que o usurio desfaa etapas de execuo; iv) o
WinMIPS64 [8] no possui uma rea para edio do
cdigo de execuo pelo usurio; v) j o sistema
MipsIt [3] a arquitetura do processador MIPS, ilustrada
no MipsIt, possui complexidade acima do desejvel
para ilustrao de conceitos aos alunos que esto
ingressando em cursos de Computao.
Podemos concluir que apesar do framework
Ptolemy no ser um simulador didtico (no possuindo
um procedimento para o ensino a distncia e de ter
uma interface grfica complexa), ele oferece a
funcionalidade de criao de um repositrio de atores,
possibilitando ao aluno criar seus prprios cenrios,
como tambm seus atores, alm de ser uma ferramenta
gratuita e com o cdigo fonte aberto, possibilitando
que novas funcionalidades e mudanas na sua interface
sejam realizadas para torn-la uma ferramenta
apropriada para fins educacionais.

critrios de avaliao e o eixo vertical apresenta o


percentual de questes conformes, no-conformes e
no-aplicveis em cada critrio.
Aps a avaliao, podem-se destacar problemas de
usabilidade nos seguintes critrios, cujo percentual de
questes no-conformes se sobressaram:
Feedback: o Ptolemy II apresentou quase 60%
de questes no-conformes, tendo em vista que, por
existir uma documentao muita extensa, muitas
tarefas executadas no fornecem um feedback
apropriado para o usurio ficar mais seguro do que
est fazendo;
Flexibilidade: o sistema deve disponibilizar
diversas formas de se realizar uma tarefa e
possibilitar efetuar modificaes. Com quase 67%
de questes no-conformes, no Ptolemy II s
possvel essa flexibilidade se o usurio conhecer
Java e XML;

Proteo contra erros: esse critrio diz


respeito aos mecanismos de deteco e preveno
de erros de entrada de dados ou comandos e aes
no recuperveis. O Ptolemy II obteve mais de 85%
de questes no-conformes, pois a maioria dos
erros detectada na validao dos arquivos XML e
classes Java;
Buscando atender s necessidades do software para
torn-lo uma ferramenta apropriada para o ensino de
Organizao e Arquitetura de Computadores, o
trabalho descreve duas melhorias: i) tornar sua
interface mais amigvel, com instrues em portugus,
e para que instrues passo a passo sejam dadas aos
alunos na montagem de seus ambientes na forma de
atividades; ii) Verificar automaticamente os exerccios
feitos pelos alunos e dar feedback sobre o que pode ser
melhorado.

3. Framework Ptolemy
Este trabalho se baseia no uso do Ptolemy [6],
criado e mantido na Universidade de Berkeley, como
uma ferramenta de ensino de Organizao e
Arquitetura de Computadores. Mas para conseguir
xito em tal objetivo, foram verificadas algumas
barreiras para a utilizao da ferramenta: i) Ptolemy
um software para fins cientficos e industriais com
interface pouca amigvel para usurios inexperientes.
ii) Ptolemy no oferece nenhum tipo de ajuda sobre
como o aluno dever montar seus ambientes. iii) Caso
um professor configure um ambiente para que seja
trabalhado por seus alunos, ele no ter controle sobre
o que os alunos fizeram com o ambiente ou com os
atores.
Alm destas barreiras, foi realizada uma anlise de
usabilidade no framework Ptolemy, buscando
compreender e apontar as necessidades do software
para torn-lo uma ferramenta de ensino eficaz, para
auxlio na disciplina de Arquitetura de Computadores,
de forma mais simples e mais amigvel.
Na realizao da avaliao de usabilidade, foi
utilizada a tcnica diagnstica de inspeo via
checklist, com o auxlio da ferramenta Ergolist1,
desenvolvida pelo Laboratrio de Utilizabilidade da
UFSC/SENAI (LabiUtil), coordenado pelo Prof. Dr.
Walter de Abreu Cybis. Essa ferramenta possui dezoito
checklists, totalizando 193 questes.
Na Figura 1 apresentado um grfico referente s
estatsticas da avaliao de usabilidade do Ptolemy II
na ferramenta Ergolist. O eixo horizontal apresenta os

4. Extenso Ptolemy para fins educacionais


A extenso desenvolvida permite que o usurio
modele suas prprias arquiteturas utilizando o
repositrio de atores especficos para a disciplina de
Arquitetura de Computadores.
A nova interface contribuir para que o professor
demonstre na prtica aos seus alunos tpicos abordados
na ementa da disciplina, como: hierarquia de memria,
registradores,
barramentos,
dispositivos
de
entrada/sada e a abordagem estrutural no estudo de
computadores. De forma a especificar a nova
arquitetura do Ptolemy para fins educacionais, foram
utilizados padres de projeto de interface [5], estudo de

Para acessar o Ergolist, visite:


http://www.labiutil.inf.ufsc.br/ergolist/check.htm

15

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Figura 1: Avaliao da usabilidade do Ptolemy


algumas ferramentas educacionais (seo 2) e
abordagens para software educativo.
Inicialmente foram desenvolvidos atores para
representao dos componentes da arquitetura do
processador MIPS como estudo de caso. Com a
aplicao da ferramenta almeja-se estender sua
aplicao para outras arquiteturas de processadores,
memrias, dispositivos de Entrada e Sada etc.

A Figura 2 apresenta uma viso geral da estrutura


para modelagem e simulao em Arquitetura de
Computadores, seguindo uma aplicao didtica do
professor para o aluno. Na nova interface visualizada
as mudanas sugeridas para criao dos roteiros
didticos e da avaliao automtica dos alunos,
respectivamente, (a) Descrio do Exerccio e (b)
Verificao Automtica.

4.1. Interface grfica Vergil

5. Roteiro didtico

A nova interface foi implementada na verso 8.0.1


do Ptolemy. Seu desenvolvimento foi na linguagem de
programao Java, utilizando o compilador Eclipse
Helios Service Release 2.
Ao acessar a interface grfica [6], o usurio
decidir se deseja abrir um ambiente de modelagem
para: (a) criar um novo projeto ou abrir um projeto j
desenvolvido, podendo este ser (b) um projeto salvo no
computador ou (c) um roteiro didtico tambm salvo.
No caso (a) o usurio utilizar a interface para
modelagem e simulao, onde ter duas opes: i) criar
um roteiro didtico, clicando na opo do menu
Descrio de Exerccio (Figura 3), utilizando os
atores da biblioteca, selecionando os obrigatrios, suas
propriedades e as conexes entre eles, alm de salv-lo
e/ou simul-lo ou ii) criar seu prprio modelo
utilizando a biblioteca, salv-lo e/ou simul-lo.
Em relao ao item (b) o usurio poder abrir
projetos existentes, adicionar/editar atores, salv-los e
simul-los por ltimo, o item (c) possibilita que ele
abra roteiros didticos existentes, resolvendo os
exerccios propostos, verifique possveis erros atravs
do Checker e receba um checklist da avaliao.

Para ilustrar o roteiro didtico aplicado aos alunos,


detalhado um exerccio sobre o comportamento de
uma Unidade Lgica Aritmtica Arithmetic Logic
Unit (ALU) que a unidade do processador que
executa as operaes aritmticas e lgicas
referenciadas pelos cdigos de operaes (opcodes). O
ator criado para representar a ALU suporta oito
operaes (AND, OR, ADD, SUB, MUL, DIV, SLT, E
NOR) em um circuito combinacional que calcula uma
sada de 32 bits baseada em duas entradas de 32 bits e
uma entrada de 4 bits que especifica a operao da
ALU a ser executada alm de computar bits para
verificar se existiu overflow.
No Ptolemy, a simulao orientada ao ator. Logo,
o aluno poder estudar o caminho de dados e controle
verificando o fluxo de dados atravs da simulao do
cenrio, pois as interaes entre atores so mensagens
com base na passagem dos dados de entrada e sada.
No exerccio sugerido (Figura 3), o aluno dever
resolver a equao (2X+Y)2 utilizando nmeros
binrios.
O exerccio consiste na utilizao das operaes da
ALU, calculando a equao na base binria, onde X =
10 e Y = 11.

16

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Figura 2: Viso geral da estrutura da nova interface grfica


O aluno dever adicionar seis atores (ALU) ao
cenrio, juntamente com outros atores que
correspondem aos valores de X,Y (ator Const) e
Operao da ALU, alm dos atores Clock e Display
(para exibir o resultado), conectando-os de forma que
suas relaes efetuem os
clculos para a equao
sugerida, informando na sua sada o valor binrio numa
sequncia de 32 bits.

A Figura 5 ilustra dois exemplos da resoluo do


exerccio, um feito de forma correta, e outro com erros
cometidos pelo aluno.
No projeto ALUAluno.xml o aluno seguiu todas
as recomendaes da Figura 3 e teve como resultado o
valor 11001. J no projeto ALUAlunoErrado.xml
o aluno no seguiu as recomendaes para o valor de
entrada de Y, adicionando o valor 111 e conectou
indevidamente a entrada operation code da ALU4
na relao conectada a operao da ALU
(Multiplicao), sendo a correta a da (Adio). Logo, o
resultado no foi o esperado.
Outras mensagens de erros foram configuradas para
colaborar com o aprendizado do aluno. Na Figura 6 so
apresentados os erros referentes propriedade do ator
Y (valor indevido) e das conexes dos atores e suas
relaes.

6. Consideraes Finais

Figura 3: Exerccio proposto


De forma a oferecer um feedback ao aluno, o
mesmo poder utilizar a opo do menu Verificao
Automtica para corrigir possveis erros no seu
cenrio. Onde, caso o aluno no adicione algum ator
obrigatrio ao cenrio, ser informado uma mensagem
de erro, conforme a Figura 4.

A extenso do Ptolemy ainda est em


desenvolvimento, mas pelo seu potencial educacional
que possibilita aos alunos criarem seus prprios
modelos, combinarem novos elementos em diferentes
nveis de abstrao e ampliarem seus estudos, esperase com sua aplicao em sala de aula que os alunos
possam resolver roteiros didticos e verifiquem os
erros existentes de uma forma clara e intuitiva.
Na prxima etapa, a extenso criada incorporar a
verificao automtica na nova interface grfica e ser
aplicada com alunos de graduao em Cincias da

Figura 4: Erro (Ator obrigatrio pendente)

17

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Figura 5: Resoluo do exerccio

Figura 6: Mensagens de erro informadas no projeto do aluno


Computao a fim de efetuar testes e analisar os
resultados produzidos.

Computadores (WEAC) Simpsio Brasileiro de Arquitetura


de Computadores. SBAC, Ouro Preto - MG, 2006.

Referncias

[5] Koscianski, A., Soares, M. S. Qualidade de Software:


Aprenda as metodologias e tcnicas modernas para o
desenvolvimento de software. Editora: Novatec. So Paulo
SP. 2007.

[1] Branovic, I, Giorgi, R e Matinelli, E., 2004. WebMIPS: A


New Web-Based MIPS Simulation Environment for
Computer Architecture Education, Proceedings of the 31st
Annual International Symposium on Computer Architecture,
Munchen, Germany.

[6] Lee, A, 2007. Neuendorffer, S. Tutorial: Building


Ptolemy II Models Graphically. Technical Report No.
UCB/EECS-2007-129.

[2] Brito, A. V. Simulao Baseada em Atores para o Ensino


de Arquitetura de Computadores. Apresentado no Workshop
sobre Educao em Arquitetura de Computadores (WEAC)
Simpsio Brasileiro de Arquitetura de Computadores. SBAC,
So Paulo, 2009.

[7] Nikolic, B., Radivojevic, Z., Djordjevic, J and


Milutinovic V, 2009. A Survey and Evaluation of Simulators
Suitable for Teaching Courses in Computer Architecture and
Organization. IEEE Transactions on Education, Vol. 52, No.
4.

[3] Brorsson, M. MipsIt: a simulation and development


environment using animation for computer architecture
education. In Proceedings of 2002 Workshop on Computer
Architecture Education: Held in Conjunction with the 29th
international Symposium on Computer Architecture
(Anchorage,
ACM,
New
York,
NY,
12.
p.
WCAE02.Alaska),p.1 -8.

[8] Scott, M. WinMips64, version 1.5, School of Computing,


Dublin City University, Ireland, 2006.
[9] Vollmar, K. and Sanderson, P., A MIPS Assembly
Language Simulator Designed For Education. The Journal of
Computing Sciences in Colleges, Vol. 21, No. 1, 2005.

[4] Felix, A. F; Pousa, C. V. e Carvalho, M. B. DIMIPSS:


Um simulador didtico e interativo do MIPS . Apresentado
no Workshop sobre Educao em Arquitetura de

18

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Arquitetura de Computadores em uma Simples Folha de Papel


Ricardo Ferreira
Departamento de Informatica
Universidade Federal de Vicosa
Vicosa, MG, 36570 000
ricardo@ufv.br

Abstract

retornar ao topico e explicar ou esclarecer o assunto ou se


pode seguir adiante, tendo uma ideia precisa da percepca o
dos alunos. Notebooks ou celulares tambem podem ser usados neste tipo de abordagem atraves da rede WIFI que esta
disponvel na maioria dos ambientes universitarios. Ja os
clickers e o software especfico tem que ser adquiridos para
tal finalidade.
Apesar da teconologia ajudar e trazer grandes benefcios,
muitas vezes o uso intensivo de projetores multimdia gera
muita dispersao na turma. Este trabalho apresenta uma ideia
simples de baixo custo e de facil implementaca o. Durante
as aulas cada aluno recebe um ou no maximo duas folhas
de papel (como ilustrado nas figuras no final do artigo). Na
folha tem exerccios numericos sobre o assunto da aula que
o estudante faz durante a dinamica da aula. O professor
pode fazer uso de simuladores de circuitos ou processadores, do projetor multimdia ou de um simples quadro negro.
O importante e a participaca o do estudante para o qual sao
delegadas varias pequenas tarefas para ficar ativo e participativo na aula, gerando duvidas e questoes.
Com o objetivo de ilustrar a abordagem de ensino, dois
temas e alguns exerccios serao serao utilizados. O primeiro envolve o conceito de memoria virtual e memoria
cache. Apesar de simples o conceito de memoria virtual,
a implementaca o devido ao uso de ponteiros e indireco es
gera duvidas nos estudantes. O segundo exerccio e mais
direto, encaminhamento no pipeline de 5 estagio do MIPS.

Este trabalho apresenta um estudo inicial do uso de


uma ferramenta simples para coletar um retorno dos alunos e uma participaca o efetiva nas aulas de arquiteturas
de computadores. Os estudantes fazem exerccios simples em conjunto com o professor ou isoladamente, durante a apresentaca o dos conceitos teoricos. Dois temas
sao abordados no artigo: memoria e encaminhamento de
instruco es. Os exerccios sao formatados para ficar em uma
folha de papel. O uso foi avaliado apenas em um semestre
letivo e apresentou uma melhora qualitativa. Os resultados
ainda sao preliminares para uma avaliaca o quantitativa.

1. Introduca o
Estudos recentes vem mostrando uma preocupaca o em
mudar a abordagem tradicional de ensino para os novos
jovens da geraca o Y [3]. Os jovens nascidos nas duas
u ltimas decadas sao considerados por alguns pesquisadores como geraca o Y. Sao dinamicos, fazem muitas tarefas
simultaneas, mas tem grande dificuldade ao ficarem presos
em uma sala de aula para manter a concentraca o por mais
de 50 minutos [3].
A disponibilidade da tecnologia com a internet e suas facilidades de uso vem gerando modificaco es na sociedade.
Os jovens fazem uso intenso da internet, por meio de notebooks, telefones celulares, se comunicam por redes sociais,
etc.
O uso da tecnologia e uma alternativa com a disponibilidade de recursos multimdia, ferramentas colaborativas em
stios na internet com animaco es, vdeos, etc. Uma ferramenta interessante sao os clickers [2]. O professor faz a
exposica o da aula e varias pausas entre os topicos. Mostra
perguntas simples no formato de multipla escolha, falso ou
verdadeiro, afirmativas. O estudante responde com o clicker escolhendo a opca o sim ou nao, a, b ou c. No mesmo
instante o professor tem o retorno dos alunos e sabe se deve

2. Memoria
Os conceitos de memoria cache e virtual sao muito importantes para a compreensao do alto desempenho dos computadores e sua evoluca o nas u ltimas decadas. A ideia de
memoria cache e simples e em geral bem assimilada pelos estudantes. O uso de notaca o decimal e um exerccio
numerico simples gera rapidamente resultados na compreensao das polticas de escrita. A seca o 2.1 mostra um
exerccio simples com este intuito. O conceito de paginaca o
em dois nveis com a paginaca o da tabela de paginas e uso

19

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

L
0
1
2
...
9

Cache
Tag Dado
12
1
12
2
40
3

tempo

Memoria
End Dado

L
0
1
2

Figura 1. Cache e Memoria


no Estado Inicial

Cache
T
D
12
1
12
2
40
3

t
43
24
01

d
430
241
5

tempo
t
d
32
10
41
411

41

45

Memoria
End
Dado
120
1
121
2
402
3
012
12
430
430
320
320
241
241
411
411

Figura 2. Cache e Memoria


no Estado Final

de TLB (Translation lookaside buffer), gera mais duvidas.


A seca o 2.2 apresenta outro exerccio que e formatado em
uma u nica folha que ajuda os estudantes a entender o conceito.

e ler, mostra a poltica write-back em funcionamento. O


uso de notaca o decimal facilita o conceito inicial da cache.
Variaco es com outras caches com totalmente associativa ou
mapeamento por conjunto, poltica write through de escrita
e o conceito de bloco podem ser incorporados ao mesmo
formato de exerccio. A notaca o binaria ou hexadecimal
tambem pode ser usada.

2.1. Cache
A metodologia deste trabalho, envolve a elaboraca o de
exerccios numericos para os topicos de arquitetura. Os
exerccios tem o objetivo de complementar os exerccios ja
disponibilizados em livros classicos da literatura [4].
Iremos ilustrar um exerccio simples com uma cache
de mapeamento direto, sistema decimal para facilitar a
introduca o ao assunto, poltica de escrita write-back. O estudante tem que preencher o conteudo inicial da cache que
aparece em branco (veja figura 1). Executar a sequencia
de operaco es e deixar o conteudo final da cache, mostrando
o rastreio das operaco es. Os estudantes compreende sem
dificuldade os conceitos e manipulando os tags e dados numericamente ao executar o exerccio.
Suponha o seguinte enunciado para o exerccio: Ex1.
Mapeamento Direto: Suponha uma cache no sistema decimal com 10 posico es e uma memoria com 1000 posico es.
Suponha que o Tag tenha os valores 12, 12, 40 armazenados nas linhas 0, 1 e 2 e armazene os dados 1, 2 e 3 nas
linhas 0, 1 e 2, respectivamente. Para a memoria suponha
que mem(i) armazena i. Execute uma sequencia de escritas
e leituras: Ler 430, escrever 10 em 320, ler 241, escrever
5 na 012, ler 411 e escrever 45 na 411. Suponha a poltica
write-back (so atualiza a memoria no caso da retirada do
dado da cache). Qual o estado final dos dados na cache e na
memoria ? .
O resultado final do exerccio e ilustrado na Figura 2.
A evoluca o dos tag e dos dados na cache sao mostrados
ao longo da linha de tempo, entre as tabelas da cache e
memoria, onde t e usado para os tags e d para os dados. Na
memoria, como usamos um campo extra para endereco, os
enderecos podem ser ordenados ou aparecer na sequencia
do exerccio mostrando no tempo como a memoria e alterada ou nao, ja que a poltica write-back e adotada no
exerccio.
A primeira coluna mostra a linha e deixa claro o conceito do Tag do mapeamento direto. O fato de escrever

2.2. Virtual
Esta seca o apresenta um exemplo de paginaca o em dois
nveis com TLB. O exemplo e dimensionado para o estudante visualizar todo o possvel conteudo da memoria real
e virtual em uma u nica folha como ilustrado na figura 3. A
pagina de memoria possui 4 entradas. A memoria real tem
32 entradas em 8 molduras. A memoria virtual tem 64 entradas em 16 paginas. O tamanho da TLB pode variar, no
exemplo usamos uma TLB com 4 entradas.
A tabela de pagina tem 2 nveis. O primeiro nvel tem 2
bits ou 4 entradas. Cada entrada leva a 2 bits ou 4 entradas
no segundo nvel. Ou seja, sao dimensionados no tamanho da pagina. O endereco virtual tem 6 bits no formato
P1 P0 S1 S0 O1 O0 . Onde P e o primeiro nvel, S o segundo
nvel e O e o offset dentro O endereco real tem 5 bits no formato M2 M1 M0 O1 O0 , onde M e a moldura e O e o offset.
A TLB realiza o mapeamento direto entre P1 P0 S1 S0 para
M2 M1 M0 .
Varios conceitos sao trabalhados no exerccio. Suponha
o conteudo inicial das memorias ilustrado na Figura 3. Considere o exemplo sem o uso da TLB para o estudante realizar o mapeamento e verificar que sao feitos tres acessos a
memoria real em um caso de sucesso no mapeamento. Suponha a busca do endereco virtual 3 = 000011. Suponha que
o primeiro nvel da tabela fique sempre alocado na moldura
000. Para o primeiro nvel onde P1 P0 = 00, a posica o de
memoria real 00000 e lida e retorna 7 = 111. Para o segundo nvel como S1 S0 = 00, a posica o de memoria real
sera 11100 ou 28 em decimal que sera lida e retornara o
valor 6 = 110. Finalmente, o dado e encontrado no terceiro acesso no endereco real 11011 onde a moldura sera a
moldura 6 e o offset e 3, o acesso retornara o dado t, que e

20

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

diferente do dado da memoria virtual onde a posica o 3 armazena d. Ou seja, o estudante visualiza que a memoria real
pode ser atualizada sem a necessidade de atualizar a virtual.
A TLB pode ser introduzida, mostrando que a pagina 0
esta diretamente mapeada na moldura 6. As outras entradas
da TLB podem ser mostradas ao estudante. Outra questao e
perguntar para o estudante se ele consegue fazer o mapeamento inverso e responder as perguntas: Quais as molduras
que estao ocupadas e quais estao livres ? Quais as paginas
que estao mapeadas na memoria real e em quais molduras ?
Neste exemplo apenas a moldura dois esta livre. As molduras 0, 7 e 3 armazenam a tabela de pagina e as molduras 1,
4, 5 e 6 armazenam as paginas.
No caso de uma falha no segundo nvel, como a moldura 2 esta livre, ela pode ser alocada para a nova pagina.
Apos a alocaca o da moldura 2, o que ocorre com a TLB
? Se outra pagina for acessada, quais molduras e paginas
serao afetadas ? Neste ponto, os conceitos de poltica de
escrita, substituica o na memoria e na TLB sao apresentados. O que deve ser feito: remover uma moldura com um
pedaco da tabela de pagina ou com uma pagina fsica. Todos estes pontos podem ser abordados com uma sequencia
de operaco es de leitura e escrita.
Para facilitar o rastreio das operaco es em sequencias,
uma marcaca o de tempo com t1 , t2 , . . . , tn pode ser usada
para que o estudante mostre no diagrama da memoria da
figura 3 o que foi modificado em cada passo. Neste exemplo, sao executadas 5 operaco es de t1 a t5 . O conteudo da
memoria real, virtual e TLB sao atualizados e o estudante
tem uma visao completa de todas as operaco es e decisoes
envolvidas.

curso de Organizaca o de Computadores II da Universidade


Federal de Vicosa. Em relaca o aos anos anteriores houve
uma melhora significativa na compreensao e visualizaca o.
Principalmente quando os estudantes tinham em mao o diagrama e vao acompanhando o professor para depois fazerem exerccios sozinhos que valem poucos pontos (1 ponto
em geral), mas sao instrumentos de avaliaca o.

4. Resultados Preliminares
Como o trabalho ainda e inicial, alguns exerccios ja vem
sendo utizados a varios semestres e outros a apenas um ou
dois semestres. Algumas consideraco es iniciais podem ser
observadas. A tabela 1 mostra a media das notas dos estudantes de Organizaca o de Computadores II nos anos de
2009, 2010 e 2011. Aparentemente parece que a metodologia nao surgiu efeito com a queda da media e aumento das
reprovaco es, mas iremos explicar a seguir. Por exemplo, em
uma cidade a media de paes e 1 por pessoa, onde uma pessoa come tres paes e outras duas nenhum. Temos que olhar
com calma a distribuica o das notas na geraca o da media.
Em 2011, o uso da metodologia com exerccios em quase
todas as aulas foi aplicado. Em 2010 e 2009, os estudantes
apenas faziam pequenas avaliaco es de 1 ponto de 10 em
10 dias sobre os topicos. A diferenca em 2011 foi disponibilizar sempre para o estudante uma ou duas folhas com
desenhos e exerccios que ele vai completando e fazendo
durante a aula. Esta dinamica tem deixado os estudantes
menos dispersos e mais colaborativos e alem de exporem
suas duvidas e participarem mais das aulas.
Ano
2009
2010
2011

3. Encaminhamento
Esta seca o mostra um exerccio simples onde o estudante
necessita completar o caminho de dados do processor MIPS
com pipeline de 5 estagios. O objetivo e que o estudante
participe e encontre os caminhos dos dados em presenca de
encaminhamentos, interagindo durante a aula. Ele recebe o
desenho basico e apenas precisa completar algumas linhas
no instante de tempo correto. Este material complementa
o texto do livro classico de Patterson e Hennessy [4]. Em
geral no diagrama de tempo, o estudante iniciante nao tem
muita dificuldade para visualizar, mas muitos tem duvidas
na hora de desenhar os fios extras no caminho de dados.
Na figura 4 sao ilustrados dois trecho de programas em
execuca o. Primeiro, o diagrama e entregue ao estudante
para completar. A figura mostra a soluca o do exerccio,
onde cada fio extra (linha em destaque no caminho de dados) adicionado e numerado e o numero deve aparecer no
diagrama de tempo da execuca o das etapas pipeline das
instruco es.
Este exerccio tem sido usado nos tres u ltimos anos do

Alunos
28
38
43

Media
68,4
66,1
65,6

Reprovados
2
2
10

65+
75
73
77

85+
1
3
5

Tabela 1. Desempenho nos anos de 2009,


2010 e 2011

De 2009 para 2010, a media caiu 2 pontos, porem a


turma aumentou em 10 alunos ou em 30%. Vale ressaltar que a turma de 2011 foi a maior turma em numero de
alunos e teve a media de 65,6. Outro ponto que merece
uma consideraca o e o numero de reprovaco es. Nos anos de
2009 e 2010, apesar de ter apenas 2 alunos reprovados, as
questoes das avaliaco es eram mais simples que as questoes
de 2011. Outro ponto que muitos estudantes foram aprovados com notas mnimas entre 60 e 65, sendo 7 estudantes
em 2009 e 15 em 2010. O numero de reprovados foi pequeno pois os estudantes que obtiveram notas entre 60 a 65,
tiveram oportunidades de avaliaco es extras. Em 2011 nao
houve ajuste nas notas, apesar de 12 estudantes nesta faixa

21

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

de 60 a 65, 5 estudantes tiveram media superior a 85 pontos. Em 2009 apenas 1 estudante obteve 85 pontos. Em
2010 tres estudantes obtiveram desempenho superior a 85
pontos. Ainda e cedo para concluir, mas o que pode ser
observado que mesmo com avaliaco es mais rigorosas em
2011 e um numero significativo de reprovados, a media da
turma se manteve. A parcela da turma que participou efetivamente dos exerccios contribuiu para que notas maiores
sustentassem a media. Nao foi usado nenhum ajuste (provas suplementares, exerccios extras) que beneficia-se alunos que tivessem notas proximas do mnimo exigido.
Em 2011, 46% dos alunos tiveram media acima de 65
pontos. Em 2010 foram 55% e em 2009 forma 68% da
turma. Apesar de ter o menor numero de alunos com media
superior a 65 pontos em 2011, eles tiveram notas melhores
que gerou uma media proxima aos anos anteriores mesmo
com avaliaco es mais rigorosas. Para os alunos com notas
acima de 65 pontos, a media em 2009 foi 75, em 2010 caiu
para 73 e em 2011 subiu para 77. Ou seja, a metade da
turma que participou efetivamente dos exerccios em 2011
foi aprovada com notas maiores que dos anos anteriores.
Outro efeito, foi a reduca o nas duvidas de u ltima hora antes das grandes avaliaco es. Os estudantes se mostraram
mais preparados. Nao foi medido, mas o tempo medio para
resoluca o das provas tambem diminuiu. Metade da turma
resolvia a prova em torno de uma hora a uma hora e meia,
uma vez que ja estavam mais preparados para resolver as
questoes da avaliaca o.

nais, maquinas de estados, assembler e projeto de um processador multiciclo. O segundo curso para o qual foi apresentada a metodologia deste trabalho tem 60 horas e envolve
os topicos de pipeline e tecnicas de paralelismo a nvel de
instruca o, memoria cache e virtual, arquiteturas paralelas.
A avaliaca o dos desempenho da metodologia atraves das
notas nos tres u ltimos anos e muito preliminar, pois o conjunto dos estudantes e muito pequeno. O que foi observado e a melhoria na iteraca o professor/aluno, o aumento no
numero de perguntas e participaca o nas aulas. Estes pontos
nao foram medidos. Apenas dois exerccios foram detalhados no artigo, mas uma serie de exerccios foram aplicados.
Por restrico es de espaco nao foram apresentados aqui.
Uma adaptaca o da metodologia esta tambem em fase
de testes. Durante as aulas praticas no laboratorio, o estudante responde a questoes e exerccios gerados no ambiente didatico PVANET da Universidade Federal de Vicosa
e no ambiente do Google Formularios. O problema da ferramenta do Google e a falta de formataca o nas questoes e
a impossibilidade de colocar figuras. Apesar disso, para
questoes simples, o Google e bem facil para o professor
formular o questionario, gerar um link WEB, onde os estudantes respondem rapidamente as questoes de multipla escolha ou check box. O professor tem imediatamente acesso
aos graficos das respostas e pode avaliar se os pontos abordados estao sendo repassados para os alunos. O mais importante e o retorno e a participaca o dos alunos nas aulas,
seja por meio de uma simples folha de papel ou um recurso
multimdia/internet. Outro estudo recente, mostrou a importancia de se estudar computaca o sem o uso de computadores para desenvolver o raciocnio computacional. O experimento vem mostrando bons resultados com criancas e
jovens [1].
Em resumo, os resultados mostraram que metade da
turma participou das atividades com um retorno na melhoria das notas e reduca o no tempo medio para realizar
as avaliaco es. Em se tratando de um curso de Ciencia da
Computaca o, onde os alunos em geral nao se interessam
pelo hardware, outras estrategias devem ser avaliadas e experimentadas para ampliar ainda mais a participaca o.

5. Consideraco es Finais
Este trabalho apresenta uma ferramenta simples e talvez considerada obsoleta, onde retornamos a uma folha
de papel. Apesar de simples, o mecanismo aumenta a
participaca o do estudante em sala de aula e evita a dispersao com a participaca o efetiva dos estudantes que passam a responder as questoes durante a aula, ter duvidas e
compreender o assunto. Uma soluca o mais atual com apoio
da tecnologia seria o uso de tablet que ja vem sendo feito
em algumas escolas. A ideia pode ser transportada para o
tablet sem problema. Pois a metodologia propoe o uso de
exerccios quantitativos para o estudante colocar em pratica
durante a aula os conceitos que vao sendo introduzidos, reduzindo as abstraco es atraves de exemplos concretos onde
ele pode interagir e calcular.
Uma ressalva importante e o contexto dos estudantes
da Universidade Federal de Vicosa. Apenas estudantes do
curso de Ciencia da Computaca o foram avaliados, onde
alguns tem mais dificuldade ou pouca familariadade com
apresentaca o estrutural e paralela dos circuitos digitais. Os
estudantes tem apenas dois cursos na a rea de hardware. O
primeiro curso de Organizaca o tem carga horaria de 90 horas e o conteudo: algebra Booleana, circuito combinacio-

Referencias
[1] M. Fellows. Computer Science Unplugged. Lulu, 2005.
[2] J. Fitch. Student feedback in the college classroom: A technology solution. Educational Technology Research and Development, 52:7177, 2004. 10.1007/BF02504773.
[3] L. Leszczynski. A cara da geraca o y. Revista Ensino Superior,
2010.
[4] D. A. Patterson and J. L. Hennessy. Computer organization
and design - the hardware / software interface (4. ed.). Morgan Kaufmann, 2009.

22

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Figura 3. Exerccio de Memoria


Virtual em 2 nveis de paginacao

23

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Figura 4. Exerccio de Encaminhamento

24

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

BIP IV: Especificao e Suporte na Ferramenta Bipide


Paulo R. M. Rech, Paulo V. Vieira, Cesar A. Zeferino e Andr L. A. Raabe
Universidade do Vale do Itaja - Univali
Rua Uruguai, 458, C.P. 360, 88302-202, Itajai, SC, BRASIL
{paulorech; pauloviniccius, zeferino, raabe}@univali.br
Resumo

Para facilitar a utilizao desses processadores no


ensino foi desenvolvida tambm uma ferramenta
educacional chamada Bipide [4].
A famlia BIP foi concebida em nveis de
complexidade de arquitetura e organizao crescentes,
sendo que o processador BIP I oferece apenas
instrues de aritmtica e de acesso memria [5]. O
BIP II inclui instrues de desvio condicional e
incondicional [6], enquanto que o BIP III acrescenta
suporte para operaes de lgica bit-a-bit. O BIP, por
sua vez, foi desenvolvido com o intuito de ser utilizado
no ensino de Sistemas Embarcados, agregando
perifricos
e
funcionalidades
tpicas
de
microcontroladores aos processadores BIP [7].
A ferramenta Bipide consiste em um ambiente de
desenvolvimento integrado (IDE - Integrated
Development Environment) baseado na arquitetura dos
processadores BIP I e BIP II, oferecendo
funcionalidades que auxiliam na compreenso e
utilizao desses processadores no ensino. Nesse
ambiente, possvel criar pequenos algoritmos em
Portugol (pseudolinguagem utilizada para facilitar o
ensino de algoritmos) e execut-los passo a passo. A
interface do Bipide utiliza animaes grficas que
ilustram a organizao do processador e destacam a
linha de cdigo Portugol sendo executada e o assembly
correspondente.
Esta abordagem didtica tem sido utilizada ao longo
de trs semestres letivos e tem trazido resultados
positivos conforme mencionado em [4]. No entanto, os
processadores BIP I, II e III no suportam chamadas de
procedimentos ou a interao com o usurio atravs de
operaes de entrada-e-sada, o que restringe sua
utilizao a algoritmos muito simples. Esse aspecto
tem gerado limitaes quanto ao uso da abordagem
para o ensino de conceitos mais abrangentes da
aprendizagem de programao. Analisando a
bibliografia de apoio utilizada nas disciplinas da rea
de algoritmos, percebe-se que muitos autores [8, 9]
adotam problemas que necessitam interaes como
entrada-e-sada de dados. Baseado nisso, conclui-se
que a interao, via entrada-e-sada de dados, um

Para reduzir a abstrao de conceitos de lgica de


programao nos primeiros semestres de cursos da
rea de computao, a famlia de processadores BIP e
o ambiente de desenvolvimento integrado Bipide foram
desenvolvidos. Os processadores da famlia BIP
disponibilizados na primeira verso da ferramenta
Bipide apresentam algumas limitaes, pois no
oferecem suporte a chamadas de procedimentos e a
interao com o usurio atravs de operaes de
entrada e sada, o que impossibilita sua utilizao em
problemas mais complexos ou que necessitem de
alguma interao. Neste contexto, este trabalho
apresenta o desenvolvimento do processador BIP IV,
que estende as caractersticas dos processadores BIP,
agregando novas funcionalidades e aumentando a
abrangncia de sua utilizao. Tambm foram
implementadas modificaes na IDE Bipide a fim de
suportar o uso do processador BIP IV. Com isto,
aumenta-se a interao do aluno com a ferramenta e
seu uso na resoluo de problemas mais complexos.

1. Introduo
Com o objetivo de auxiliar o processo de ensinoaprendizagem nos semestres iniciais de cursos de
Cincia da Computao, foi proposta uma abordagem
interdisciplinar envolvendo conceitos de arquitetura e
organizao de computadores nas disciplinas ligadas a
aprendizagem de programao [1]. Este enfoque parte
de um problema frequente relatado por pesquisadores
da rea, os quais apontam o alto nvel de abstrao
envolvido nos conceitos de programao como um dos
principais aspectos que dificultam a aprendizagem
inicial de programao. Acredita-se que a reduo da
abstrao envolvida nesses conceitos pode diminuir os
problemas de aprendizagem apresentados pelos alunos
iniciantes [2,3].
Para atender esse objetivo, foi desenvolvida uma
famlia de processadores de baixa complexidade
denominada BIP (Basic Instruction-set Processor).

25

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

componente importante para auxiliar a despertar mais


interesse por parte do aluno.
Nesse contexto, a soluo apresentada neste
trabalho consiste na criao de um novo integrante da
famlia BIP, o BIP IV, que incorpora instrues de
entrada-e-sada (E/S), manipulao de vetores e
chamadas de procedimentos. Para suportar as novas
funcionalidades do BIP IV, vrias alteraes no
ambiente Bipide foram necessrias, incluindo
mudanas na estrutura da pseudolinguagem Portugol.
Entre os benefcios da implementao em questo
esto: (i) maior interao do aluno com a ferramenta;
(ii) aprendizagem de novas funcionalidades e seu
funcionamento no processador; (iii) extenso do uso da
ferramenta para disciplinas de semestres posteriores
aos j aplicados, uma vez que permite algoritmos mais
complexos; e (iv) a continuidade da pesquisa
relacionada abordagem didtica interdisciplinar.

de instruo composto por apenas dois campos: o


cdigo de operao (de 5 bits) e o operando (de 11
bits) [6]. O acumulador utilizado como operando
implcito da maioria das instrues.
A organizao dos processadores BIP baseada em
uma estrutura de memria do tipo Harvard, com
memrias separadas para dados e programa [6]. O
processador estruturado em dois blocos: o Controle e
o Caminho de Dados. O primeiro responsvel por
buscar e decodificar as instrues da memria de
programa, gerando sinais de comando para a execuo
das instrues pelo Caminho de Dados.
Os processadores BIP representam nveis
incrementais de complexidade de arquitetura e de
organizao. O processador BIP I [5] suporta
instrues aritmticas e de transferncia. O processador
BIP II [6] estende o BIP I agregando instrues de
desvio condicional e incondicional necessrias para a
implementao de laos de repetio. O processador
BIP III agrega instrues de lgica bit-a-bit, enquanto
que o BIP [7] adiciona funcionalidades tpicas de
microcontroladores.

2. Famlia de processadores BIP


Uma prtica essencial para o ensino de computao
a experimentao realizada em laboratrios, onde os
estudantes podem aplicar o conhecimento terico
adquirido em sala de aula na soluo de problemas
prticos relacionados s disciplinas estudadas. Nesse
aspecto, a escolha de um modelo de processador com
caractersticas pedaggicas que possibilitem sua
utilizao em um contexto educacional de extrema
importncia para a demonstrao dos conceitos
relacionados arquitetura e organizao do
computador. Dessa forma, alguns autores e professores
optam pela utilizao de processadores reais e
comerciais, enquanto outros preferem usar um modelo
hipottico de processador disponvel na literatura [10,
11].
Outra abordagem utilizada o desenvolvimento de
um modelo especfico de processador que atenda as
necessidades pedaggicas do curso [1, 10]. Os
processadores BIP foram desenvolvidos por
pesquisadores do Laboratrio de Sistemas Embarcados
e Distribudos e do Grupo de Informtica na Educao
da UNIVALI (Universidade do Vale do Itaja) com o
intuito de estabelecer uma relao entre a programao
de alto nvel e sua representao em hardware,
auxiliando o aprendizado nas disciplinas Arquitetura e
Organizao de Computadores e Algoritmos e
Programao, ministradas nas fases iniciais dos cursos
de graduao na rea de Computao [4].
Os processadores BIP so baseados na arquitetura
do processador PIC (Programmable Intelligent
Computer), utilizam uma arquitetura orientada a
acumulador e no possuem banco de registradores.
Todas as instrues so baseadas em um nico formato

3. O ambiente integrado Bipide


O ambiente Bipide foi concebido pela necessidade
de um simulador educacional que permitisse relacionar
os conceitos de lgica de programao com aspectos
definidos no hardware dos processadores BIP I e BIP
II. Este ambiente possibilita a criao de algoritmos em
Portugol e sua execuo passo a passo. A ferramenta
permite visualizar o cdigo correspondente ao
programa em linguagem assembly e o estado dos
componentes da organizao do processador atravs de
animaes que ilustram o funcionamento interno do
processador [4].
O subconjunto da linguagem Portugol utilizada no
ambiente Bipide foi definido segundo as caractersticas
arquiteturais dos processadores BIP I e BIP II. Foram
disponibilizadas estruturas de desvio e de laos de
repetio, alm dos elementos bsicos necessrios para
estruturar um algoritmo [4].
O Bipide apresenta um compilador integrado,
construdo atravs da ferramenta ANTLR3 (ANother
Tool for Language Recognition V.3) [12]. Foram
construdos os analisadores lxico e sinttico e
definidas as aes semnticas para gerao do cdigo
em linguagem de montagem e tratamento de erros.
Utilizou-se tambm a IDE ANTLRWorks, a qual
composta por um ambiente de desenvolvimento de
gramticas para o ANTLR3.
O mdulo de simulao do Bipide permite a
visualizao simultnea dos programas em Portugol e
assembly, assim como a organizao do processador, o

26

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

que contribui para a reduo das abstraes


apresentadas nos conceitos de programao [4].
Para o desenvolvimento do Bipide, utilizou-se a
tecnologia WPF (Windows Presentation Foundation)
[13] e a ferramenta Expression Blend [14]. Essas
tecnologias possibilitam a criao de aplicaes com
interfaces ricas, agregando ao Bipide funcionalidades
mais intuitivas e recursos de animao que permitem
uma maior interatividade com o usurio.

simulao, bem como a representao dessas em


linguagem de baixo nvel.

5. Arquitetura do BIP IV
A especificao do BIP IV aproveita algumas
instrues presentes no BIP e estende o BIP III. Alm
de possibilitar operaes de entrada-e-sada e chamada
de procedimentos, foram includas instrues de
deslocamento e de manipulao de vetores.
Para suportar as operaes de E/S, foi adotado o
mtodo de E/S mapeada em memria, utilizado no
BIP, no sendo necessrias grandes modificaes na
arquitetura e na organizao do processador [7]. Os
registradores IN_PORT (entrada) e OUT_PORT
(sada) so utilizados para acesso interfaces de E/S. A
Tabela 1 resume a arquitetura do BIP IV, identificando
as classes de instruo suportadas pelos diferentes
processadores da famlia (do BIP I ao BIP IV).
O cdigo de operao dos processadores BIP
composto por 5 bits, permitindo identificar at 32
instrues. O conjunto de instrues do BIP IV
formado por 28 instrues. Do total de 32 cdigos de
operao possveis, restam trs para novas instrues,
sendo que um utilizado para representar a instruo
de retorno de interrupo no BIP [7]. Ressalta-se que
as instrues acrescentadas ao BIP IV foram herdadas
do processador BIP.
A organizao do BIP IV foi baseada na
organizao do processador BIP III com a adio de
alguns componentes presentes no BIP para suportar
manipulao de vetores e chamada de sub-rotinas,
alm dos pinos de E/S (registradores IN_PORT e
OUT_PORT). Estes componentes incluem uma pilha
de suporte a procedimentos, onde ser salvo o endereo
de memria da instruo seguinte chamada da subrotina e uma unidade de manipulao de vetores.

4. Proposta interdisciplinar
As iniciativas de criao de processadores com
objetivo didtico normalmente buscam apoiar as
disciplinas diretamente envolvidas, como Arquitetura
e Organizao de Computadores. A criao da famlia
de processadores BIP, com suas diferentes verses,
permitiu trabalhar nveis de complexidade diferentes e
com isso explorar os conceitos de arquitetura e
organizao de computadores em diferentes disciplinas
do primeiro, segundo, terceiro e stimo semestres do
curso de Cincia da Computao da UNIVALI. De
forma semelhante, esse aspecto facilitou o
estabelecimento de relaes entre as diferentes
disciplinas
envolvidas,
numa
abordagem
interdisciplinar. [1].
Sabe-se que a utilizao de processadores
simplificados no ensino, como o caso dos
processadores BIP, auxilia a melhorar a compreenso
de conceitos relacionados aprendizagem inicial de
programao reduzindo seu grau de abstrao. Essa
abordagem pode facilitar a aprendizagem dos alunos
que apresentam problemas em lidar com abstraes
[1].
Motivados por essa proposta, uma srie de trabalhos
foram desenvolvidos, disponibilizando novos recursos
e ferramentas a serem utilizados na abordagem citada,
entre os quais a criao de um microcontrolador
baseado na arquitetura BIP (o BIP) [7] e o ambiente
de desenvolvimento Bipide [4], o qual inclui
simuladores para os processadores BIP I e BIP II.
A fim de dar continuidade a esta proposta
interdisciplinar, um novo integrante da famlia BIP foi
desenvolvido. Este processador, designado BIP IV,
possui
funcionalidades
intermedirias
aos
processadores BIP III e BIP, permitindo operaes de
E/S, manipulao de vetores e o uso de subrotinas.
Estes recursos suprem uma necessidade apresentada
pelos processadores disponibilizados anteriormente, no
que diz respeito s restries arquiteturais impostas
pelas verses anteriores.
O suporte a este novo processador no ambiente
Bipide tambm foi implementado, permitindo ao aluno
compreender as novas funcionalidades atravs de

6. Suporte ao BIP IV no Bipide


Para implementar o suporte ao BIP IV na
ferramenta Bipide, foram levantadas caractersticas
relacionadas interfaces de E/S de simuladores de
arquitetura similares. Essas caractersticas permitiram
definir aspectos que orientaram a construo da
interface de E/S utilizada no Bipide. A seguir descrevese a anlise realizada e a implementao do suporte ao
BIP IV na ferramenta Bipide.

27

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Tabela 1. Resumo da Arquitetura do BIP IV


Tamanho da palavra de dados
16 bits
Tipos de dados
Inteiro de 16 bits com sinal 32768 a +32767
Tamanho da palavra de instruo
16 bits
Formato de instruo
15 14 13 12 11 10 9 8 7 6 5 4
Cd. Operao
Operando
Modos de endereamento

Registradores

Classe de instuo
(Processadores)

Direto: o Operando um endereo da memria


Imediato: o Operando uma constante
Indireto: o Operando um endereo base de um vetor que
somado ao INDR para o clculo de um endereo efetivo da
memria de dados
ACC: acumulador
PC: contador de programa
STATUS: registrador de Status
INDR: registrador de ndice
SP: apontador do topo da pilha
Controle: HLT
Armazenamento: STO
Carga: LD e LDI
Aritmtica: ADD, ADDI, SUB e SUBI
Desvio: BEQ, BNE, BGT, BGE, BLT, BLE e JMP
Lgica booleana: AND, OR, XOR, ANDI, ORI,
XORI e NOT
Deslocamento Lgico : SLL e SRL
Manipulao de vetor: LDV e STOV
Suporte a procedimentos : RETURN e CALL

(BIP I-IV)
(BIP II-IV)
(BIP III-IV)
(BIP IV)

A Tabela 2 apresenta a comparao entre os


sistemas analisados e a proposta implementada no
Bipide. Outras caractersticas relacionadas ao
desenvolvimento de programas em linguagem de alto
nvel e simulao da organizao tambm foram
levantadas.
Observa-se na comparao realizada, que os
sistemas Bipide e MipsIt apresentam as mesmas
caractersticas, sendo os nicos a permitir programao
em linguagem de alto nvel. No entanto, a arquitetura
do processador MIPS, ilustrada no MipsIt, possui
complexidade acima do desejvel para a apresentao
de conceitos iniciais de programao. J a arquitetura
do BIP, tendo sido criada para propsito didtico,
possui a simplicidade necessria para ilustrao desses
conceitos. Percebe-se ainda que o ambiente Bipide
possibilita a simulao da organizao dos
processadores BIP, permitindo que o aluno visualize
graficamente, por meio de animaes, o funcionamento
dos componentes do processador. Considera-se essa
caracterstica um grande diferencial da ferramenta,
contribuindo para o aprendizado.

6.1. Anlise de trabalhos similares


A anlise de trabalhos similares considerou
simuladores de arquitetura de processadores que
permitam
E/S.
Os
simuladores
analisados
compreendem o NeanderWin [15], GNUSim8085 [16],
MipsIt [17], ABACUS [18] e WinMIPS64 [19]. A
seguir descrevem-se as principais caractersticas
observadas nos trabalhos citados.
Dentre os simuladores estudados, alguns
apresentaram interfaces de E/S baseadas em controles
simples, como representaes de chaves e LEDs,
outros apresentam tambm visores ilustrando valores
em decimal ou em hexadecimal. Essas interfaces
possibilitam resolver problemas simples, onde a
entrada e a sada so nmeros, ou at problemas que
simulam o controle de algum dispositivo acoplado ao
processador e que tenham a necessidade de ler ou
escrever em determinados bits da porta. Com isso,
optou-se representar no Bipide uma interface baseada
em chaves e LEDs, juntamente com opes de edio e
leitura em decimal.

28

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

Simulador
NeanderWin
GNUSim8085
MipsIt
ABACUS
WinMIPS64
Bipide

Tabela 2. Caractersticas dos Sistemas Analisados


Simula Organizao
Suporta linguagem de alto nvel
No
No
No
No
Sim
Sim
No
No
No
No
Sim
Sim

Interface de E/S
Chaves e visor
Campo Editvel
Chaves e LEDs
Chaves e LEDs
Terminal
Chaves e LEDs

Os recursos do Bipide, ilustrados na Figura 1, so


descritos a seguir:
1. Simulaes: Disponibiliza botes que permitem
controlar a simulao, incluindo a simulao
passo a passo;
2. Velocidade: Permite controlar a velocidade da
simulao do programa;
3. Portugol: exibe o programa Portugol que est
sendo simulado destacando a linha em execuo;
4. Assembly: Exibe o cdigo assembly gerado pelo
compilador. A linha do programa em execuo
destacada bem como todo o conjunto de
instrues que correspondem linha de cdigo
em alto nvel destacada na janela Portugol;
5. Organizao do Processador: exibe a imagem da
organizao do processador (BIP I, BIP II, BIP III
ou BIP IV), bem como as animaes que
representam as instrues em execuo. Na
ilustrao exibida a organizao do BIP IV;
6. Registradores: exibe os valores dos registradores
do processador durante a simulao do programa;
7. Descrio: exibe o nome e a descrio de cada
instruo executada; e
8. Interface de E/S: permite ao usurio visualizar e
informar valores em decimal ou binrio.

6.2. Implementao
Para contemplar o suporte ao BIP IV, o ambiente
Bipide foi alterado de modo a suportar as seguintes
caractersticas dos processadores BIP III e BIP IV: (i)
operaes de E/S; (ii) utilizao de vetores; (iii)
chamada de sub-rotinas com passagem de parmetros;
e (iv) operaes de lgica. Para isso, as alteraes
feitas no Bipide incluem mudanas na gramtica
Portugol e novas verificaes nas aes semnticas,
assim como alteraes na gerao de cdigo assembly
e mudanas no simulador.
Em sua verso anterior, o simulador do Bipide
permitia escolher entre os processadores BIP I e BIP II,
refletindo em mudanas nas instrues disponveis,
ilustraes e animaes do processador. Para manter
esse conceito, o simulador foi alterado de modo a
permitir escolher, alm do BIP I e BIP II, os
processadores BIP III e BIP IV. Entre as alteraes
feitas na IDE, destaca-se ainda a interface de E/S,
ilustrada pelo item 8 da Figura 1, onde possvel
visualizar o contedo dos registradores $in_port e
$out_port. Pode-se ainda atribuir valores ao registrador
$in_port atravs das chaves disponveis na interface ou
digitando-os em notao decimal.

Figura 1. Interface do Bipide

29

Workshop sobre Educao em Arquitetura de Computadores (WEAC 2011)

A interface de E/S adotada permite a resoluo de


problemas onde a entrada e a sada so nmeros.
Alm disto, possibilita simular o controle de
dispositivos perifricos acoplado ao processador, que
necessitam ler ou escrever em determinados bits da
porta. Dessa forma, imagina-se um conjunto de
problemas que podem ser ilustrados por esse
ambiente, os quais vo desde o desenvolvimento de
um algoritmo que realiza a soma de dois nmeros
inteiros at o controle da rotao de um motor de
passo (onde a ativao de determinados bits em uma
sequncia determinada de passos so necessrios para
produzir o movimento de rotao do dispositivo).

[2]

7. Concluses

[6]

[3]

[4]

[5]

Este artigo apresentou o desenvolvimento do


processador BIP IV e a implementao de alteraes
realizadas na IDE Bipide para suportar este
processador. As alteraes realizadas na IDE Bipide
ampliaram seu potencial pedaggico, permitindo o
desenvolvimento de algoritmos mais complexos do
que os suportados pela verso anterior da ferramenta.
Esta amplitude de possibilidades favorece a
adoo do ambiente Bipide como software de apoio
em outras disciplinas dos cursos da rea de
computao, que at ento tinham dificuldades na
utilizao da ferramenta devido s restries
impostas pela arquitetura dos processadores BIP
disponveis anteriormente. Isso amplia o potencial
pedaggico de uma abordagem educacional
interdisciplinar que busca reduzir o nvel de abstrao
envolvido
em
conceitos
de
programao,
colaborando para a melhoria do ensino de
computao.
Com as novas funcionalidades e possibilidades de
explorao disponibilizadas, pretende-se obter novas
evidncias sobre a reduo dos problemas de
aprendizagem associados abstrao dos conceitos
abordados. Pretende-se ainda promover o uso dos
processadores BIP e da ferramenta Bipide em outras
disciplinas do curso, como Compiladores e Circuitos
Digitais. Outros trabalhos futuros incluem o suporte a
diferentes linguagens de alto nvel, como C e Java, e
a realizao de experimentos prticos que permitam
avaliar empiricamente os benefcios obtidos com as
novas funcionalidades disponibilizadas.

[7]

[8]

[9]

[10]

[11]

[12]
[13]
[14]
[15]

[16]
[17]

Referncias
[1]

C. A. Zeferino et al., Um Enfoque Interdisciplinar no


Ensino de Arquitetura de Computadores. In:
Arquitetura de Computadores: educao, ensino e
aprendizado. Martins, C; Navaux P.; Azevedo, R.;
Kofuji, S. (Org.). No Prelo, 2011.

[18]
[19]

30

M. McCracken et al., A Multi-National, MultiInstitutional Study of Assessment of Programming


Skills of First-year CS Students. SIGCSE Bulletin,
USA, n. 33, v. 4, p. 125-140, 2001.
R. Lister et al. A multi-national study of reading and
tracing skills in novice programmers. ACM SIGCSE
Bulletin, USA, v. 36, n. 4, p. 119-150, dez. 2004.
P. V. Vieira, A. L. A. Raabe, C. A. Zeferino, Bipide
ambiente de desenvolvimento integrado para a
arquitetura dos processadores BIP. Revista Brasileira
de Informtica na Educao, Vol. 18, No 1, 2010.
D. Morandi et al., Um processador bsico para o
ensino de conceitos de arquitetura e organizao de
computadores. Hfen, Uruguaiana, v. 30, p. 73-80,
2006.
D. Morandi, A. L. A. Raabe, C. A. Zeferino,
Processadores para Ensino de Conceitos Bsicos de
Arquitetura de Computadores. In: WEAC 2006,
Proceedings... Porto Alegre: SBC, 2006. p. 17-24.
M. C. Pereira, C. A. Zeferino, uBIP: a simplified
microcontroller architecture for education in
embedded systems design. In: IP Based Electronic
System Conference & Exhibition - IP 08, 2008,
Grenoble. Proceedings.... Grenoble : Design and
Reuse, 2008. p. 193-197.
J. A. N. G. Manzano, J. F. Oliveira, Algoritmos:
lgica para desenvolvimento de programao de
computadores. 17. ed. So Paulo, SP: rica, 2005.
N. Ziviani.,Projeto de algoritmos: com
implementaes em Java e C++. So Paulo, SP:
Thomson, 2007.
B. Nikolic et al., A Survey and Evaluation of
Simulators Suitable for Teaching Courses in
Computer Architecture and Organization. IEEE
Transactions on Education, USA, v. 52, n. 4, p. 449458, 2009.
A. Clements, Selecting a processor for teaching
computer architecture. Microprocessor and
Microsystems, USA, v. 23, n. 5, p. 281-290, 1999.
P. Terence, The Definitive ANTLR Reference, The
Pragmatic Bookshelf, Dallas, Texas, 1997.
Microsoft Corporation. Windows Presentation, 2011.
Microsof Corporation. Expression Blend, 2011.
J. A. S. Borges, G. P. Silva, NeanderWin um
simulador didtico para uma arquitetura do tipo
Acumulador. In: WEAC 2006. Proceedings Porto
Alegre: SBC, 2006.
GNUSim8085. GNUSim8085, 2003.
M. Brorsson, MipsIt: A Simulation and Development
Environment Using Animation for Computer
Architecture Education. In: Workshop on Computer
Architecture Education, 2002, Anchorage, Alaska.
Proceedings New York, NY: ACM, 2002.
R. M. Ziller, ABACUS, 1999.
M. Scott, WinMIPS64, 2010.

You might also like