Workshop sobre Educação em Arquitetura de Computadores

34
WEAC 2011 Workshop sobre Educação em Arquitetura de Computadores

Transcript of Workshop sobre Educação em Arquitetura de Computadores

Page 1: Workshop sobre Educação em Arquitetura de Computadores

WEAC 2011

Workshop sobre Educação em

Arquitetura de Computadores

Page 2: Workshop sobre Educação em Arquitetura de Computadores

APRESENTAÇÃO

O Workshop sobre Educação em Arquitetura de Computadores (WEAC) é um evento

promovido pela comissão especial em Arquitetura de Computadores e Processamento de

Alto Desempenho da Sociedade Brasileira de Computação (SBC).

Em sua sexta edição, o WEAC 2011 conta com 5 artigos distribuídos em duas sessões

técnicas. Destaca-se o empenho do Comitê de Programa durante o processo de avaliação.

Cada artigo recebeu 3 avaliações que consideraram tanto o mérito técnico como a

inserção nos tópicos de interesse do evento.

Nesta edição, o WEAC promove um painel sobre o livro “Arquitetura de Computadores:

educação, ensino e aprendizado”, cujo objetivo é discutir a aplicação do livro e de seus

capítulos em disciplinas da graduação e pós-graduação. O WEAC promove também um

grupo de discussão sobre a Revista Eletrônica de Educação em Arquitetura de

Computadores (REEAC). O objetivo é a criação de um fluxo contínuo de submissões

promovendo a divulgação de novas idéias sobre educação em Arquitetura de

Computadores.

Tenham todos um excelente workshop.

Henrique Cota de Freitas

Coordenação do WEAC 2011

Vitória, 28 de outubro de 2011

Page 3: Workshop sobre Educação em Arquitetura de Computadores

WEAC 2011

Workshop sobre Educação em Arquitetura de Computadores

Coordenação 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 Eusébio de Lima (UFPE)

Maurício 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 Gonçalves (UEM)

Sandro Neves Soares (UCS)

Sandro Rigo (UNICAMP)

Sérgio Takeo Kofuji (USP)

Page 4: Workshop sobre Educação em Arquitetura de Computadores

SUMÁRIO

Metodologia de Ensino Orientada a Projetos e Criação de Material Didático aplicada

ao Projeto de Processadores

Ricardo Duarte (UFMG), Pedro Donoso-Garcia (UFMG)

1

Simuladores de Memória Cache, um Estudo Comparativo Direcionado ao Ensino

Matheus Xavier (IFCE), Jardel Rodrigues (IFCE), Otávio Júnior (IFCE)

7

Extensão do Ptolemy para o ensino de Organização 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: Especificação e Suporte na Ferramenta Bipide

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

Raabe (UNIVALI)

25

Page 5: Workshop sobre Educação em Arquitetura de Computadores

Metodologia de Ensino Orientada a Projetos e Criação de Material Didático aplicada ao Projeto de Processadores

Ricardo de Oliveira Duarte, Pedro Francisco Donoso Garcia Depto. de Engenharia Eletrônica – Escola de Engenharia

Universidade Federal de Minas Gerais Av. Antônio Carlos, 6627 – Campus da Pampulha – CEP 31.270-901 – Belo Horizonte, MG

([email protected], [email protected])

Resumo

Este artigo descreve uma experiência de produção de material didático para o ensino do projeto de processadores para uma disciplina teórica e prática conhecida por Sistemas, Processadores e Periféricos obrigatória aos cursos de Graduação em Engenharia Elétrica, Engenharia de Controle e Automação e Engenharia de Sistemas da UFMG. A construção de materiais didáticos desenvolvidos para essa disciplina segue diretrizes encontradas em metodologias ativas de ensino orientadas a projetos. É considerada uma proposta para atividades de laboratório, motivando os alunos a adquirir e construir seu próprio conhecimento através da auto-aprendizagem com materiais didáticos desenvolvidos especificamente para este fim. Os alunos tomam decisões de projeto e apresentam suas próprias soluções, ao invés da simples repetição de tarefas pré-determinadas encontradas em metodologias de ensino práticas baseadas em guias de aula. Os resultados observados são o aumento da motivação, do aprendizado e da participação dos alunos nas aulas e atividades propostas. 1. Introdução

Este artigo trata do relato de caso da aplicação da metodologia de Ensino Orientado a Projetos e o desenvolvimento de material didático para uma disciplina prática de laboratório cujo nome é Sistemas, Processadores e Periféricos (SPP). Essa disciplina é obrigatória aos cursos de Engenharia Elétrica, Engenharia de Controle e Automação e Engenharia de Sistemas na UFMG, onde o aprendizado do projeto de processadores é um dos objetivos.

O material didático desenvolvido foi norteado pela metodologia de ensino que tem seus princípios inspirados na metodologia conhecida como Problem Based Learning – PBL, amplamente divulgada em literatura [1]. O elemento chave dessa metodologia de

ensino é a forma como os alunos propõem a solução para um projeto em Engenharia enunciado, por meio dos conhecimentos adquiridos e na integração deles com outros conhecimentos. A partir da identificação dos requisitos mínimos determinados pelo projeto proposto pelo professor, inicia-se o fracionamento do projeto em etapas, que necessita de profundo entendimento de conceitos, análise e técnicas envolvidas na sua solução. O aluno é incentivado a construir seu próprio aprendizado estudando os conceitos em material didático cuidadosamente desenvolvido para esse fim e de outros disponibilizados, para a realização de sua própria solução da situação-problema proposta.

O aluno é orientado a definir, documentar, implementar seu próprio projeto e testá-lo em laboratório. O professor atua como orientador das atividades propostas e trabalha como ator facilitador da construção do conhecimento de cada estudante, esclarecendo dúvidas sobre seus projetos, sugerindo alternativas de projeto e referências bibliográficas para o desenvolvimento das soluções, além 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 Elétrica e de Engenharia de Controle e Automação, mas especificamente nas disciplinas de laboratório de Eletrônica I, Eletrônica de Potência e Controle I na UFMG desde 2006. Conforme observa Donoso-Garcia, professor da disciplina de laboratório de Eletrônica I, “tal abordagem no âmbito da Engenharia se aproxima muito do modus operandis, encontrado em diversas indústrias no desenvolvimento de novos produtos tecnológicos” [2]. A partir de uma especificação parcial de um conjunto de instruções e requisitos da arquitetura, o aluno é convidado a envolver-se ativamente com o processo de criação da sua própria solução. O desenvolvimento do processador é realizado seguindo orientações gerais passadas pelo professor da disciplina. Como o aluno é responsável por suas próprias decisões de projeto, isso faz com que o seu aprendizado se torne mais agradável, estimulante e próximo da realidade

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

1

Page 6: Workshop sobre Educação em Arquitetura de Computadores

enfrentada na vida profissional de um engenheiro. Para que isso se torne uma realidade, um conjunto de objetos multimidiáticos, enfatizando os conceitos e a base teórica necessária ao desenvolvimento da situação-problema deve ser desenvolvido e apresentado ao aluno no início das atividades da disciplina. O enfoque desse trabalho concentra-se no relato de um caso de aplicação de uma metodologia de ensino orientada a projetos e a criação do material didático voltado ao projeto de processadores nas aulas práticas da disciplina SPP.

A abordagem de ensino orientada a projetos possibilita a valorização das habilidades e competências individuais de cada aluno e também estimula o trabalho em grupo, pois implica na constante troca de experiências dos atores envolvidos no processo. Essa abordagem também estimula o professor que ministra a disciplina a cada semestre por vivenciar diferentes soluções e situações práticas com a cada situação-problema proposta. Para cada semestre letivo, o professor pode e deve elaborar uma nova situação-problema, de forma que os alunos se sintam motivados e desafiados a desenvolver um trabalho inédito.

A teoria tem uma importância substancial e não é menosprezada, mas prioritariamente se enfatiza que esta serve como subsídio para a realização de trabalhos práticos, e não apenas uma simples memorização de conceitos teóricos, sem relacionamento com a prática. Os alunos têm sido incentivados a serem atores participantes do ensino e não apenas receptores de informações prontas. Por outro lado, o professor torna-se um gestor de ensino, auxiliando e provendo suporte para o aprendizado dos alunos e não apenas repetindo conteúdo teórico extraído de livros.

Nas aulas de laboratório onde são utilizados os guias ou roteiros contendo descrição de experimentos, estes se mostram repetitivos e muitas vezes desconexos com a evolução inerente de certos temas abordados em disciplinas de uma área tecnológica. Desta forma, o aluno desenvolve menos sua criatividade.

O artigo está organizado da seguinte forma: Na seção 2 apresenta-se o contexto no qual a disciplina era ministrada até então, seus objetivos e as justificativas observadas para o desenvolvimento do um novo material didático e a mudança da metodologia de ensino. Na seção 3 apresenta-se a Estruturação do Projeto de construção do material didático. Na seção 4, apresenta-se uma síntese dos Materiais e Métodos desenvolvidos para a aplicação da metodologia de ensino orientada a projetos, empregada na disciplina. O método de avaliação utilizado também é brevemente relatado nessa mesma seção. Na seção 5, apresenta-se uma descrição dos resultados alcançados. Considerações finais compõem a última seção.

2. Contextualização

SPP é uma disciplina obrigatória para três cursos de graduação da UFMG: em Engenharia Elétrica, em Engenharia de Controle e Automação e em Engenharia de Sistemas, totalizando aproximadamente 150 alunos matriculados a cada semestre. SPP é composta de uma carga horária semestral de 45 horas de aulas teóricas e 30 horas de aulas práticas em laboratório (total de 75h/semestre). Todas as aulas teóricas acontecem concomitantemente com as aulas práticas. A disciplina SPP é de caráter formativo do aluno na área de Projetos de Sistemas Digitais dos cursos supracitados e tem como pré-requisitos às disciplinas de Sistemas Digitais e Laboratório de Sistemas Digitais, onde o enfoque de projetos de sistemas digitais modernos baseados em linguagens de descrição de hardware e uso de dispositivos lógicos programáveis deve ser ensinado e praticado em aulas de laboratório. De forma geral, os objetivos da disciplina SPP são 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 funções para as quais foi projetado.

b) Identificação e caracterização de um periférico, sua forma de comunicação com processadores e seus modos de operação.

Antes do desenvolvimento do material didático aqui apresentado, as aulas de laboratório desta disciplina eram baseadas em roteiros com experiências bem definidas e repetitivas, onde o aluno executava tarefas pré-determinadas, devendo apresentar pré-relatórios no início de cada aula de laboratório ao professor da disciplina. Desta forma, os pré-relatórios permitiam identificar se o aluno havia estudado o assunto previamente e se preparado para as atividades presenciais da aula prática da semana. Os roteiros de laboratório da aula prática estavam sempre atrelados ao assunto dado na aula teórica da semana.

Para se alcançar o primeiro objetivo geral da disciplina, o professor apresentava em sala de aula o desenvolvimento de um processador definido para fins didáticos, conhecido por MIC-1 [3]. O projeto desse processador era dividido em oito aulas práticas na forma de roteiros de atividades. O aluno era convidado a projetar o processador MIC-1 na linguagem de descrição de hardware VHDL e validá-lo através de um simulador de códigos de descrição de hardware produzidos da mesma linguagem. O segundo grande objetivo dessa disciplina era alcançado com o estudo de periféricos e sua programação na linguagem Assembly da arquitetura da família de processadores da Intel™. Esse objetivo era alcançado em sete aulas práticas, sendo cada uma com o seu próprio roteiro de atividades abordando a programação de um periférico.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

2

Page 7: Workshop sobre Educação em Arquitetura de Computadores

Relatos dos alunos descreviam a pouca motivação pelas aulas práticas devido a constante repetição e constatação de resultados descritos nos roteiros. Também relatavam sobre as aulas, que por se tratarem de atividades repetitivas já vivenciadas e desenvolvidas por alunos de turmas anteriores, não se sentiam motivados a preparar os pré-relatórios, 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 motivação dos alunos. Em geral os alunos não percebiam a razão de estarem estudando certos assuntos, por não terem a noção do todo. Todos esses sinais apontavam para a necessidade de mudança na estratégia de ensino. 3. Estruturação do material da disciplina

A metodologia de ensino proposta para essa disciplina é centrada no Ensino Orientado ao Projeto, baseada em aliar a teoria à prática, apresentando conceitos teóricos 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 contemporâneos, referência das áreas, de Sistemas Digitais [4], Arquitetura e Organização de Computadores [5] e Projetos com Microcontroladores [6].

A fim de alcançar o primeiro objetivo da disciplina (mencionado na seção 2) e com base nos livros-textos citados foi desenvolvido o material didático contendo teoria e aspectos práticos 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 especificação de requisitos, seguindo cada uma das etapas do sequenciamento de projeto citado. Desta forma, os alunos são orientados ao estudo, ao desenvolvimento e à documentação dos procedimentos realizados para seus projetos. Paralelamente para cada etapa de projeto, documentos-modelos foram elaborados, no intuito de manter um padrão de documentação de projeto e facilitar a avaliação dos trabalhos. Alcançando-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 lógico programável (FPGA – Field Programmable Gate Arrays), e apresentam seus trabalhos. Neste evento são incentivados a discussão dos trabalhos, com aportes de novas idéias baseadas na experiência adquiridas pelos alunos.

Uma apostila focando o segundo objetivo da disciplina, que é o de identificar e caracterizar um periférico e desenvolver pequenos sistemas com o uso

do mesmo, também foi desenvolvida [7]. Essa apostila contém o material teórico mínimo e aplicação da teoria nas atividades práticas relacionada ao estudo de periféricos de um microcontrolador, sua programação e o desenvolvimento de pequenos sistemas, utilizando-se os periféricos estudados. Exemplos de programação e uso de cada periférico são apresentados em cada seção 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 laboratório e na realização dos trabalhos propostos.

Todo o material didático desenvolvido foi estruturado de forma a permitir seu crescimento e atualização com outras técnicas de projeto de processadores que venham a ser agregadas, sem ser necessário efetuar modificações nos objetos de aprendizagem já produzidos.

4. Materiais e métodos

As condições mínimas de utilização de equipamentos e material didático existente em laboratório para realização das atividades práticas devem estar funcionalmente disponíveis desde o primeiro dia de aula. O material didático é constituído de kits DE2-Altera de dispositivos lógicos programáveis para cada grupo de alunos, capazes de ser reconfigurados por software Quartus II - Altera [8], [9]. Os kits de dispositivos lógicos programáveis necessitam de um microcomputador com todo o software necessário ao desenvolvimento do projeto, instalados em cada bancada para cada grupo de alunos.

A caracterização da forma semi-presencial da disciplina, onde o estudo e o desenvolvimento das etapas de projeto do processador e da programação de pequenos sistemas com o uso de periféricos, bem como o envio dessas atividades de cada etapa semanalmente ao professor demandam o apoio de uma plataforma de ensino a distância. A plataforma Moodle – Minha UFMG é utilizada intensamente, onde professores, monitores-bolsistas e alunos a utilizarão como meio para consulta ao material didático, esclarecimento de dúvidas, troca de informação através dos fóruns para realização das atividades propostas. Semanalmente, todos os grupos de alunos devem submeter suas tarefas de cada etapa de projeto para apreciação e comentários do professor dentro de um prazo estabelecido pelo mesmo.

As atividades presenciais semanais em laboratório consistem na realização de testes por parte dos alunos das atividades a distância que desempenharam na semana. Esses testes são realizados utilizando-se os kits de desenvolvimento de projetos [8]. Esclarecimentos de dúvidas remanescentes com o

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

3

Page 8: Workshop sobre Educação em Arquitetura de Computadores

professor da disciplina são também tratadas presencialmente nesses encontros. Ainda dentro do tempo de aula, o professor avalia a participação individual e o conhecimento de cada aluno sobre os assuntos tratados na etapa.

Um recurso didático importante desenvolvido para a aplicação dessa metodologia de ensino é a vídeo-aula. As vídeo-aulas foram construídas a partir de narrações de animações produzidas respectivamente com os softwares Camtasia Studio© e Microsoft PowerPoint©. As vídeo-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 vídeo-aulas, sugerindo ao aluno como aliar a teoria à prática. 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 documentação de suas soluções nas referidas etapas de acordo com modelos fornecidos para cada fim.

Figura 1. Sequenciamento do Projeto.

Em síntese geral o material didático produzido para a disciplina é composto pelos seguintes artefatos:

a) Um planejamento de aulas sugestivo para a parte teórica da disciplina, contendo o assunto que deverá ser tratado em cada aula, material de referência e a conexão com as atividades fim, tratadas em laboratório.

b) Um planejamento de atividades em laboratório, contendo o objetivo de cada atividade presencial, material que deverá ser produzido pelo aluno na etapa e material de referência disponível ao aluno para a execução da etapa.

c) Nove vídeo-aulas com animações explicando a base teórica necessária para o aluno projetar, documentar e desenvolver sua própria solução para a situação-problema proposta.

d) Um documento contendo as especificações de requisitos mínimas do processador proposto.

e) Dez guias de projeto, as quais orientarão os alunos nas atividades de documentação, implementação e validação de suas soluções para submissão da tarefa semanal.

f) Material para referência no desenvolvimento dos projetos. Esse material fica disponível no ambiente Moodle – Minha UFMG para acesso dos alunos e também no repositório de objetos de aprendizagem GIZ-UFMG [10] e está organizado em sumários, aula a aula (vide Figura 2). Estão disponíveis materiais para aprendizado e consulta sobre aspectos relacionados à Linguagem de Descrição de Hardware; Material de referência e usuário do Kit de desenvolvimento e do ambiente de programação que o aluno deverá usar para validar a sua solução.

g) Um modelo para elaboração de cada etapa de projeto do processador, que cada grupo de alunos deverá submeter à apreciação do professor pelo ambiente Moodle.

h) Um exemplo completo do projeto de um processador, seguindo as etapas do seqüenciamento de projeto apresentado, acompanhado de toda documentação necessária: códigos e simulações utilizados no projeto, conforme modelo sugerido pelo professor.

i) Um roteiro sugestivo de avaliação de trabalhos dos workshops para o professor.

j) Um documento informativo para o aluno contendo os critérios que são utilizados na avaliação dos workshops.

k) Uma apostila com a teoria mínima necessária ao projeto de sistemas com microcontroladores e seus periféricos.

A Figura 2 mostra um sumário do curso

organizado no ambiente Moodle. Cada sumário está associado a uma aula e a uma etapa do sequenciamento do projeto do processador. Todas as aulas são 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, vídeo-aulas e softwares. Cada aula também apresenta um link para submissão das tarefas da etapa de projeto para avaliação e comentários do professor.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

4

Page 9: Workshop sobre Educação em Arquitetura de Computadores

Figura 2. Organização da Disciplina no Moodle

A Figura 3 apresenta um slide de uma das nove

vídeo-aulas, visualizada com o auxílio de um navegador de Internet. Observa-se uma via de dados de um processador simples de três instruções. A esquerda dessa imagem observa-se um recurso utilizado na criação dos vídeos, de grande utilidade para o aluno, que é a navegação por slides utilizados na produção da aula. Esse recurso possibilita ao aluno interromper e voltar a assistir o vídeo de onde parou sem se preocupar em tomar nota do tempo do momento no qual parou de assistir.

Figura 3. Imagem com o Trecho de uma Vídeo-aula

4.1. Aplicação 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 disposição para desenvolver sua solução, bem como as formas das atividades avaliativas. Os alunos são agrupados em duplas ou trios, para realizar todas as atividades propostas no semestre. Cada grupo seguirá seu próprio projeto, tomará suas próprias decisões e proporá uma solução. Incentiva-se a discussão entre os membros de um grupo para definir as possíveis decisões sobre as etapas de projeto do processador.

A disciplina de SPP tem dois objetivos claros e distintos, citados na seção 2. Cada objetivo é tratado em um módulo composto por sete aulas de 2h/aula. No início do primeiro módulo é apresentado ao aluno uma situação-problema do módulo, ou seja, o documento de requisitos mínimos de projeto do processador no

semestre, também são apresentados os instrumentos que ele terá a sua disposição para desenvolver a sua própria solução e o modo de utilizá-los. Nas seis aulas subsequentes do módulo 1, cada dupla deverá criar, desenvolver, testar e documentar sua solução com o acompanhamento e a orientação presencial do professor responsável pela turma. Na última aula do módulo, cada grupo deverá apresentar sua solução para a turma. Essa último aula presencial funciona como um workshop. As últimas sete aulas compõem o segundo módulo, onde pretende-se alcançar o segundo grande objetivo da disciplina. O objeto de aprendizado principal desse segundo módulo é a apostila, que apresenta sete situações-problemas, que induzem o grupo de alunos a criarem suas próprias soluções.

A avaliação da disciplina é realizada por meio de avaliações parciais semanais e no final de cada módulo. Os alunos são arguidos individualmente semanalmente e são atribuídos conceitos ao grupo e a cada aluno do grupo, em cada etapa de projeto.

5. Resultados

Os objetos de aprendizado desenvolvidos segundo a metodologia do Ensino Orientado a Projetos se encontram disponíveis, à comunidade da UFMG, no repositório de objetos de aprendizado do GIZ – Rede de Desenvolvimento de Práticas de Ensino Superior, vinculado a Pró-Reitoria de Graduação da UFMG sob a licença 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 são obtidos e divulgados semestralmente pela Pró-Reitoria de Graduação da UFMG. Um total de 269 alunos já cursou esta disciplina utilizando essa metodologia de ensino. A figura 4 mostra quantitativamente a afirmação sobre o aumento da motivação dos alunos na disciplina diante da metodologia de ensino proposta nesse trabalho. O gráfico 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 didático é considerado como bom a muito bom. Os alunos afirmam que as vídeo-aulas propiciam uma base primordial para o desenvolvimento de seus projetos. Por fim, os documentos que acompanham o material didático e o desenvolvimento de um exemplo de projeto de um processador são objetos de aprendizagem essenciais para o sucesso da aplicação dessa metodologia.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

5

Page 10: Workshop sobre Educação em Arquitetura de Computadores

Figura 4. Grau de motivação com relação à disciplina

Figura 5. Meu aprendizado na disciplina

6. Considerações finais

As vantagens da adoção dessa metodoloensino são muitas: (i) Alunos mais motivadoprojetar, tomar decisões de projeto e analisar o impacto das decisões tomadas. Cabe-lhes desenvolver uma postura ativa perante o processo de aprendizagem e reconhecer que o professor não é mais o único a decidir sobre os caminhos a serem seguidos. professor, essa metodologia de ensinoproporciona uma dinâmica constante a cada semeem que uma nova situação-problema é elaborada e proposta aos alunos. O professor é o condutor da formação da experiência prática do aluno, mostrando os possíveis rumos a serem tomados e corrigindo erros conceituais que possam surgir no percursodesvantagem: (i) necessita dedicação professor; (ii) demanda ferramenta de endistância bem instalada, funcional e disponível

Vários tipos de objetos de aprendizagem podem ser desenvolvidos segundo essa metodologia, que o princípio que a norteia seja obedecido, aliar a teoria à prática para o desenvolvimento da situação-problema, conduzindo o aluno as suas próprias escolhas e decisões de projeto. materiais desenvolvidos, cabe destacar quevídeo-aulas são um dos objetos de apprincipais desenvolvidos nesse trabalho.

0%

10%

20%

30%

40%

50%

0%

10%

20%

30%

40%

50%

60%

Grau de motivação com relação à

Meu aprendizado na disciplina

As vantagens da adoção dessa metodologia de mais motivados para

e analisar o impacto lhes desenvolver uma

postura ativa perante o processo de aprendizagem e reconhecer que o professor não é mais o único a decidir sobre os caminhos a serem seguidos. (ii) Para o

essa metodologia de ensino-aprendizagem proporciona uma dinâmica constante a cada semestre,

problema é elaborada e proposta aos alunos. O professor é o condutor da

ia prática do aluno, mostrando is rumos a serem tomados e corrigindo erros

no percurso. Como desvantagem: (i) necessita dedicação intensiva do professor; (ii) demanda ferramenta de ensino a distância bem instalada, funcional e disponível.

objetos de aprendizagem podem segundo essa metodologia, desde

que a norteia seja obedecido, ou seja, prática para o desenvolvimento da

conduzindo o aluno as suas sões de projeto. Dentre os , cabe destacar que as

de aprendizado nesse trabalho.

Agradecimentos A Pró-Reitoria de Graduação da UFMGfinanceiro ao projeto de desenvolvimento do material didático apresentado nesse artigo. 7. Referências [1] Donoso-Garcia, P. F., Martins, L. F.; Cortizo, P. C. Ensino Orientado ao Projeto: Uma Experiência para o Ensino de Eletrônica nas disciplinas de laboratório de Eletrônica e Eletrônica de Potência. Potência (Florianópolis), v. 13, p. 109 [2] Donoso-Garcia, P. F., Torres, L. Ensino Orientado ao projeto desafio: uma experiencia para o ensino de controle, instrumentação e eletrônica. Brasileiro de Educação em Engenharia, 2007XXXV COBENGE 2007. p. 3B05-

[3] Tanenbaum, A. S. Organização Estruturada de Computadores. 5ª Edição, Prentice Hall, 2006.

[4] Vahid, F. Sistemas Digitais: Projeto, Otimização e HDLs, Bookman, 2008.

[5] Patterson, D. A., Hennessy, J. L. Organização e Projeto de Computadores - A Interface Hardware/ Software. 3a. Edição. Editora Campus, 2005.

[6] de Oliveira, A. S. e Andrade, F. S. Sistemas Embarcados - Hardware e Firmware na Prática. 1a. Edição. Editora Érica, 2006.

[7] Oliveira Junior, M., Duarte, R. O. Apostila sobre Introdução ao Projeto com Microcontroladores e Programação de Periféricos. DELT 2011. Disponível por acesso restrito a comunidade da UFMG em: <https://dspaceprod01.grude.ufmg.br/dspace/handle/OAUFMG/545/browse?type=title>, agosto de 2011.

[8] Altera Corporation©: DE2 Development and Education Board User Manual –Disponível para download<http://www.abramovbenjamin.net/altera_acessado em 24 de agosto de 2011.

[9] Altera Corporation©: Introduction to Quartus II Software - Version 10.0, 2011. <http://www.altera.com/literature/manual/archives/intro_to_quartus2.pdf>, acessado em 24 de agosto de 2011.

[10] Repositório da Rede de Desenvolvimento de Práticas de Ensino Superior, PróGraduação - UFMG. Disponível por acesso restrito em: <https://dspaceprod01.grude.ufmg.br/dspace/handle/OAUFMG/545/browse?type=title>, agosto de 2011.

Ruim

Médio

Bom

Muito bom

Ruim

Médio

Bom

Muito bom

ção da UFMG pelo suporte financeiro ao projeto de desenvolvimento do material

Garcia, P. F., Martins, L. F.; Cortizo, P. C. Projeto: Uma Experiência para o

Ensino de Eletrônica nas disciplinas de laboratório de nica e Eletrônica de Potência. Eletrônica de

Potência (Florianópolis), v. 13, p. 109-116, 2008.

Garcia, P. F., Torres, L. Ensino Orientado desafio: uma experiencia para o ensino de

controle, instrumentação e eletrônica. In: Congresso Brasileiro de Educação em Engenharia, 2007, Curitiba.

-1-3B05-15.

] Tanenbaum, A. S. Organização Estruturada de ão, Prentice Hall, 2006.

] Vahid, F. Sistemas Digitais: Projeto, Otimização e

] Patterson, D. A., Hennessy, J. L. Organização e A Interface Hardware/

. 3a. Edição. Editora Campus, 2005.

veira, A. S. e Andrade, F. S. Sistemas Hardware e Firmware na Prática. 1a.

] Oliveira Junior, M., Duarte, R. O. Apostila sobre Introdução ao Projeto com Microcontroladores e

ção de Periféricos. DELT – EE – UFMG, 2011. Disponível por acesso restrito a comunidade da UFMG em:

https://dspaceprod01.grude.ufmg.br/dspace/handle/O>, acessado em 24 de

DE2 Development and – Version 1.3, 2006.

download em: http://www.abramovbenjamin.net/altera_de2.pdf>,

.

Introduction to Quartus II 10.0, 2011. Disponível em:

http://www.altera.com/literature/manual/archives/intcessado em 24 de agosto de

Rede de Desenvolvimento de or, Pró-Reitoria de

UFMG. Disponível por acesso restrito em: https://dspaceprod01.grude.ufmg.br/dspace/handle/O

>, acessado em 24 de

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

6

Page 11: Workshop sobre Educação em Arquitetura de Computadores

Simuladores de Memória Cache, um Estudo Comparativo Direcionado ao

Ensino

Matheus Arleson Sales Xavier¹, Jardel das Chagas Rodrigues¹, Otávio Alcântara de Lima Júnior¹

¹Laboratório de Eletrônica e Sistemas Embarcados (LAESE)

Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE)

Av. Contorno Norte, 10 – CEP: 61925-315 – Maracanaú, Ceará

[email protected], [email protected], [email protected]

Resumo

O conceito de memória cache é um tópico

importante visto principalmente na disciplina de

Arquitetura de Computadores, em cursos da área de

computação. Esse é um assunto no qual muitos alunos

sentem dificuldades, isso se deve ao cunho

extremamente teórico das aulas na maioria dos cursos

ofertados. Um simulador se mostra uma ferramenta

importante neste cenário. Este artigo apresenta um

estudo comparativo entre os principais simuladores de

memória cache disponíveis, visando avaliar sua

aplicabilidade como ferramenta de apoio ao ensino em

cursos introdutórios de arquitetura de computadores.

O estudo aponta que um dos principais empecilhos à

aplicação destas ferramentas é a dificuldade em

localizar estes aplicativos.

1. Introdução

No decorrer da evolução dos sistemas

computacionais, a diferença de velocidade entre a

unidade central de processamento e a memória

principal se tornou um obstáculo ao aumento do

desempenho dos computadores. Uma das formas

encontradas para mitigar essa problemática foi o

emprego de uma pequena porção de memória veloz e

de custo mais elevado, denominada memória cache,

localizada entre o processador e a memória principal.

A memória cache armazena temporariamente os

dados e instruções que possuem maior probabilidade

de serem usados pelo processador, reduzindo o número

de acessos à memória principal. A memória cache é

largamente empregada nas arquiteturas computacionais

modernas. Sua utilização visa à melhora de

desempenho do sistema.

O conceito de memória cache está inserido na

disciplina de Arquitetura de Computadores. Motivar os

alunos a estudar Arquitetura de Computadores pode ser

um problema quando o aluno acredita não ser

necessário conhecer arquitetura para desenvolver

softwares. O desafio em motivar os alunos pode não

estar somente na disciplina de Arquitetura de

Computadores, mas em todas as disciplinas de um

curso, quando estas deixam ausente a correlação de

importância com Arquitetura de Computadores [1].

Portanto, devem-se utilizar mecanismos para

solucionar essa problemática e tornar a disciplina mais

atrativa e menos complexa para os alunos. A utilização

de simuladores didáticos contribui para uma melhor

compreensão do assunto, uma vez que esses são

capazes de traduzir para a realidade os conceitos

teóricos através de uma introdução de forma clara e

didática dos mesmos [2].

À medida que a complexidade e variedade de

sistemas computacionais aumentam, a adequação

desses como ferramentas pedagógicas nos cursos de

Arquitetura de Computadores diminuem. Em

consequência disso, muitos instrutores estão se

voltando para simuladores como auxiliares de ensino,

muitas vezes empregando o valioso tempo de

ensino/pesquisa para construí-los [3]. Um simulador de

memória 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 memória cache e

sua empregabilidade no ensino, com o intuito de

facilitar o processo de seleção da ferramenta usada

como apoio ao ensino em cursos introdutórios de

arquitetura de computadores. Alguns simuladores já

foram propostos com esse objetivo e os mesmos serão

analisados no decorrer desse trabalho, dentre os quais

foram selecionados: KSH [4], MSCSim [5], DCMSim

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

7

Page 12: Workshop sobre Educação em Arquitetura de Computadores

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

organizado em cinco seções. A seção 2 traz o conceito

de memória cache e explica brevemente o seu

funcionamento. A seção 3 do artigo detalha cada

simulador. A seção 4 do artigo exibe os parâmetros de

comparação e características desejáveis em um

simulador utilizado no ambiente ensino-aprendizagem.

A seção 5 faz um estudo comparativo dos simuladores.

A seção 6 mostra as conclusões deste artigo.

Finalmente, a última seção mostra as referências

utilizadas nesse trabalho.

2. Memória cache

Ao passar dos anos, os processadores e outros

dispositivos conseguiram um aumento incrível na

velocidade de processamento das informações, o que

não foi acompanhado pela memória principal,

tornando-se lenta e atrasando as demais operações [8].

Na Figura 1 é mostrada claramente essa diferença.

Nesse âmbito, precisava-se de uma unidade

intermediária que acelerasse as operações que a

envolviam. Ao analisar o comportamento dos

programas, percebeu-se que o processador tende a

referenciar endereços de memória próximos, devido ao

grande uso de estruturas de repetições e dados,

localizados um após o outro na memória [9].

Figura 1. Evolução de desempenho -

Memória x CPU [8].

A Figura 2 mostra o posicionamento da memória

cache no sistema, onde a mesma pode ser dividida em

vários níveis de acordo com a proximidade da CPU,

proporcionando uma melhoria no desempenho global.

A cache mantém um bloco de informações,

composto das posições de memória mais recentemente

utilizadas, como também o conteúdo das posições de

memória próximas, pois estas possuem alta

probabilidade de serem acessadas nas próximas

referências de memória .

Figura 2. Esquema de uma memória cache

[9].

Para que esta operação ganhe velocidade, a cache

fica próxima ao processador e é feita deste mesmo

material. Apenas quando um dado referenciado não

está na cache, um acesso à memoria principal é feito.

A Figura 3 apresenta um resumo das operações

envolvidas na busca de uma posição de memória em

um sistema empregando memória cache.

Figura 3. Funcionamento da cache [9].

Embora existam diversas implementações, poucos

elementos básicos de projeto servem para classificar e

diferenciar as diversas arquiteturas. O primeiro deles: o

tamanho da memória cache. Quanto maior, mais caro e

rápido, 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

função de mapeamento determina como a cache é

preenchida, podendo ser de forma direta: cada bloco da

memória 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 número de

linhas cada e um bloco pode estar associado a qualquer

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

8

Page 13: Workshop sobre Educação em Arquitetura de Computadores

linha de um conjunto já pré-determinado.

Os algoritmos de substituição determinam como os

dados serão substituídos, podendo ser pelas técnicas:

Least Frequently Used (LFU), os dados menos

frequentemente utilizados serão substituídos; First In

First Out (FIFO), o primeiro dado a entrar é o primeiro

a sair; Least Recently Used (LRU), os dados menos

recentemente usados são descartados primeiro; ou de

forma aleatória. A política de escrita determina como

os dados serão atualizados na memória principal,

podendo ser de forma simultânea: write through ou os

dados são escritos temporariamente na cache e depois

na memória, 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 níveis,

para um sistema com vários níveis de cache.

Atualmente a memória cache vem evoluindo e já não

está apenas presente nos processadores, mas em quase

todos os dispositivos que necessitam dessa aceleração,

como os discos-rígidos, por exemplo. Podemos

encontrar também sistemas com vários níveis de cache

ou caches separadas para dados e instruções.

3. Simuladores

Esta seção analisa as características presentes nos

simuladores, exibindo suas principais funcionalidades e

modos de operação.

No presente artigo foram escolhidos quatro

simuladores para realização do estudo, entretanto

outras ferramentas podem ser encontradas, como o

SMPCache [10] e o Loop-way Cache [11], por

exemplo. Alguns critérios para a escolha dos

simuladores foram adotados, a saber: ou grau de

exibição dos simuladores em relação às pesquisas

realizadas na web sobre o tópico de memória cache e as

documentações encontradas referentes aos mesmos,

sejam estas artigos ou páginas da internet.

3.1 KSH

O KSH foi desenvolvido na Pontifícia Universidade

Católica de Minas Gerais e desenvolvido na linguagem

de programação Java. Esta ferramenta pode ser

executada em modo gráfico ou via console, ambos

possuindo as mesmas funcionalidades. O KSH

implementa as três arquiteturas de memória cache:

mapeamento direto; mapeamento associativo e

mapeamento associativo por conjunto. Suas políticas

de substituição são FIFO e LRU. Possui técnicas de

escrita: write back e write through e o acesso à

memória pode ser de modo sequencial ou paralelo.

Figura 4. Visão geral do simulador KSH.

O seu memory trace pode ser um arquivo de texto ou

um comando via teclado. O programa possui

basicamente três ambientes de execução: o primeiro,

logo após o menu do programa, é o controle da

simulação, que permite tanto a observação passo-a-

passo, quanto visualizar diretamente o final da

simulação; o segundo, abaixo do controle da

simulação, é onde é possível observar as informações;

o terceiro, à direita, informa o conteúdo do memory

trace.

3.2 DCMSim

DCMSim (Didatic Cache Memory Simulator) é um

simulador que foi projetado na Digital and

Computational System Groups (GSDC) na Pontifícia

Universidade Católica. A primeira versão foi iniciada

como um trabalho universitário, enquanto que a última

versão foi desenvolvida como um trabalho de

graduação, ambos foram escritos em Java. A última

versão, selecionada para o estudo, implementa as

seguintes arquiteturas de cache: mapeamento direto;

associativa e associativa por conjunto. Políticas de

substituição: FIFO e LRU. Políticas de escrita: write

back e write through. Os dados de entrada são

representados pelo conjunto de acessos à memória.

O memory trace apresenta-se na forma de um

arquivo de texto onde cada linha representa um acesso

à memória e tem suas linhas neste formato: <endereço>

<indicação de (d)ado ou (i)nstrução> <indicação de

(l)eitura ou (e)scrita> <dado/instrução>. Possui um

recurso denominado MissAnalyst que analisa os acertos

e erros dos acessos realizados na memória cache. Na

seção denominada LogBox, as estatísticas do tempo de

acesso são exibidas, tanto da iteração corrente, como

de toda a simulação. Isso possibilita gerar um arquivo

de relatório contendo a sequência das ocorrências,

configurações e os resultados da simulação.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

9

Page 14: Workshop sobre Educação em Arquitetura de Computadores

Figura 5. Visão geral do DCMSim.

3.3 MSCSim

MSCSim (Multilevel and Split Cache Simulator), foi

desenvolvido na Pontifícia Universidade Católica de

Minas Gerais. Desenvolvido também em Java e

implementa as arquiteturas de cache: mapeamento

direto; mapeamento associativo e associativo por

conjunto. Políticas de substituição: FIFO e LRU.

Políticas de escrita: write back e write through. Acesso

à memória: paralelo e sequencial. O programa possui

interface gráfica composta de vários ambientes, sendo a

janela principal composta de um menu principal e um

espaço onde é mostrado os arquivos usados

recentemente (configurações e traces). Seu memory

trace pode ser feito através de um trace generator no

programa, o qual permite a criação manual ou

randômica seguindo o formato: <endereço>

<(L)eitura/(E)scrita> <(I)nstrução/(D)ado>.

Quanto à configuração da arquitetura, pode

ser elaborada ou ser importada de um arquivo pré-

definido. É possível dividir a cache em vários níveis e

diferenciar as características de cada nível. Depois de

configurada a arquitetura e informado o trace, surge o

ambiente de simulação – uma janela com abas:

simulação, memória cache, memória principal e

estatísticas – a simulação pode ocorrer passo-a-passo

ou diretamente.

Figura 6. Visão geral do MSCSim.

3.4 Dinero IV

Desenvolvido pelo Dr. Jan Edler da NEC Researchs

Corporation e pelo prof. Mark D. Hill do

Departamento de Ciência da Computação da

Universidade de Wisconsin. O Dinero IV é um

simulador de memória cache baseado nas referências

do memory trace que permite a simulação de caches

multi-níveis dentre seus mais diversos tipos, como, por

exemplo, uma cache separada para instrução e uma

para dados. Possui melhor desempenho e portabilidade

do que seu antecessor, o Dinero III.

O Dinero IV não apresenta o tempo decorrido da

simulação, sendo a sua principal funcionalidade o

cálculo das taxas de acerto e de erro dos acessos feitos

à memória cache. Suas políticas de substituição são:

LRU; FIFO ou aleatória. Os vários parâmetros de cada

cache podem ser configurados separadamente em

relação aos fatores como: arquitetura; política e

estatísticas. Durante a inicialização é realizada a

configuração, uma cache por vez, começando por cada

nível, desde a memória principal. Após a inicialização,

os níveis superiores são alimentados a cada referência

através por uma chamada simples de uma função,

enquanto que os níveis mais baixos da hierarquia são

tratados de maneira automática. O Dinero IV foi

testado nos ambientes: x86/Linux, Alpha/Linux,

Alpha/OSF, SGI/IRIX-6, RS6000/AIX, x86/Solaris, e

Sparc/Solaris.

Figura 7. Resultado de uma simulação

realizada pelo Dinero IV.

4. Comparação entre os simuladores

Essa seção apresenta a comparação entre os

simuladores selecionados, através da análise de seus

respectivos artigos.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

10

Page 15: Workshop sobre Educação em Arquitetura de Computadores

4.1 Parâmetros de comparação

Após a análise dos simuladores, algumas

características fundamentais foram discutidas e essa

seção mostra os requisitos essenciais desejados em um

simulador.

Como a interface gráfica é a forma de interação com

o usuário, esta deve ser intuitiva, de forma que a

ferramenta seja fácil de utilizar. É importante que o

processo de utilização do ambiente de simulação

aconteça em etapas. O usuário deve passar por cada

etapa, inserindo as informações solicitadas sobre a

arquitetura simulada até a conclusão da simulação e

exibição dos resultados.

A visibilidade das informações é fundamental, a

ferramenta deve mostrar como é feito o acesso à

memória cache, através da exibição de todos os

parâmetros envolvidos no controle da mesma. Ao final

da simulação, é esperado um relatório, cujo conteúdo

mostraria uma descrição detalhada do desempenho do

sistema.

Para evitar erros, a geração do memory trace deve

seguir um modelo fácil e deve ser feita de forma

manual ou aleatória dentro do aplicativo.

É essencial a disponibilização do aplicativo e de seu

código fonte. Alguns dos trabalhos desenvolvidos não

estão disponíveis para download e o contato dos

desenvolvedores não é mais válido. Após o

desenvolvimento da ferramenta, esta deve ser

disponibilizada de forma simples, através, por

exemplo, de sites que ofereçam hospedagem

permanente.

4.2 Estudo comparativo

Após a análise dos artigos dos simuladores de

acordo com os critérios escolhidos, foi possível

verificar que a maioria dos simuladores analisados não

atende a alguns critérios.

Dos simuladores selecionados apenas o Dinero IV

não apresenta uma cache dividida para dados e

instruções, enquanto que todos os outros possuem tal

recurso.

Em relação à quantidade de níveis de memória

cache apenas o KSH e o DCMSim não apresentam a

possibilidade de realizar simulações com vários níveis

de cache.

Os tipos de acesso sequencial e paralelo, bem como

o tempo de cada acesso são características apenas do

KSH e do MSCSim, os outros simuladores não

disponibilizam tal opção.

Os erros de compulsório, conflito e capacidade que

podem ocorrem em um acesso à memória cache são

pertinentes apenas aos simuladores Dinero IV e

MSCSim.

Em relação ao memory trace, a maioria dos

simuladores usa arquivos de texto elaborados pelo

usuário, baseados em um modelo pré-definido. Embora

não seja uma tarefa tão complexa, uma função

randômica que gere o memory trace é importante,

sendo o MSCSim o único simulador que possui tal

recurso. O Dinero IV utiliza um trace gerado pelo

próprio programa.

No quesito intuitividade, o que mais demonstrou

deficiência foi o Dinero IV, pois não apresenta

interface gráfica e nem comandos simples para as

operações, que são exclusivamente via console.

Todos os outros possuem interfaces gráficas,

variando em complexidade. A ferramenta que se

mostrou mais completa foi o MSCSim, apresentando

uma interface bem estruturada.

Na análise da visibilidade de informações, o

MSCSim se destaca, exibindo uma gama de

informações em sua simulação, além de possuir

animações que ajudam a visualizar as modificações. O

DCMSim e o KSH apresentam apenas as informações

básicas e o Dinero IV não apresenta informações

durante sua simulação, apresentando apenas um

arquivo de relatório ao término.

O MSCSim possui um recurso de importação de

arquivos de extensão xml com arquiteturas pré-

definidas para este fim. Já o KSH possui um script de

configuração, porém a edição do mesmo é mais

trabalhosa. Todos os outros não apresentam nenhuma

forma de implementação de tutoriais.

A tabela 1 mostra as características básicas, que

foram os parâmetros de comparação existentes nos

simuladores, e outras características adicionais que se

mostraram presentes nos mesmos.

Tabela 1. Características gerais pertinentes

aos simuladores

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

11

Page 16: Workshop sobre Educação em Arquitetura de Computadores

5. Resultados

Todos os simuladores apresentaram problemas de

disponibilidade do aplicativo e do código fonte. O

DCMSim possui o aplicativo disponível, porém em

uma versão incompleta. O Dinero IV é disponível no

site do autor, enquanto que para obter o MSCSim, é

necessário entrar em contato com seus autores, os quais

não retornaram os inúmeros contatos realizados. Não

foram encontradas fontes para o KSH.

A partir do estudo comparativo realizado, podemos

verificar que há uma grande carência nas ferramentas

de simulação. Mesmo havendo vários trabalhos

publicados, não é possível encontrar os simuladores,

exceto o Dinero IV, tanto por estes não 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 análise. Ele possui a interface com

mais informações e as animações permitem uma

melhor visualização das mudanças durante a simulação.

Já o Dinero IV obteve o pior desempenho. A operação

via console e a falta de informações durante a

simulação, tornam o uso e a compreensão difíceis,

sendo não indicado para o ensino.

6. Conclusões

Nesse ambiente conclui-se que apenas um único

simulador atende às principais características que um

simulador didático deve possuir. Porém, o programa

não foi localizado e as inúmeras tentativas de contato

com os autores não obtiveram êxito.

Dessa maneira, os objetivos do artigo foram

alcançados e foi percebida a carência da existência de

simuladores que possam auxiliar o ensino sobre

memória 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, através, por

exemplo, de um serviço de hospedagem permanente de

arquivos. O projeto da interface gráfica deve primar

por criar um ambiente agradável, no qual o aluno possa

obter as informações do funcionamento e de

desempenho de várias organizações diferentes de

memória cache.

Juntamente com os artigos analisados nesse estudo,

este trabalho complementa as pesquisas realizadas

sobre simuladores de memória cache mostrando um

estudo comparativo, de modo a facilitar a escolha de

uma ferramenta de simulação que possa ser empregada

na disciplina de arquitetura de computadores.

7. Referências [1] Coutinho, L. M. N.; Mendes, J. L. D.; Martins, C. A. P.

S. “MSCSim – Simulador de Memória Cache, Split e

Multiníveis”, 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

memória cache com carregamento dinâmico de módulos

e execução de script de configuração”, 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] 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. Disponível 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. “Organização e Arquitetura de

Computadores”, 5ª Edição, Pearson Prentice Hall, 2002.

[10] Vega M. A.; Martin R.; Zarallo F.A.; Sánchez J. M.;

Gómez, J. A. "SMPCache: Simulador de Sistemas de

Memoria Caché en Multiprocesadores Simétricos".

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.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

12

Page 17: Workshop sobre Educação em Arquitetura de Computadores

Extensão do Ptolemy para o ensino de Organização e Arquitetura de Computadores

André L. L Torres, Alisson V. Brito Universidade Federal da Paraiba

Programa de Pós-Graduação em Informática {atorres, alissonbrito}@dce.ufpb.br

Resumo

A utilização de simuladores na educação se faz

cada vez mais presente nas atividades pedagógicas. Nesta nova realidade, várias aplicações visam facilitar a construção do conhecimento por parte dos professores em relação aos alunos, através de métodos dinâmicos e expondo aulas para múltiplos ramos sem haver grande esforço ou repetições desnecessárias. Neste sentido, este trabalho apresenta uma extensão desenvolvida numa ferramenta de modelagem e simulação de sistemas concorrente baseada em atores, denominada Ptolemy, para contribuir com o processo de ensino-aprendizagem da disciplina de Organização e Arquitetura de Computadores. A extensão permite a criação de roteiros didáticos que abordam a disciplina e a verificação automática dos mesmos.

1. Introdução

A análise dos sistemas computacionais atuais, seu

entendimento é uma tarefa difícil, principalmente embasado apenas na teoria. Logo, o estudo da disciplina Organização e Arquitetura de Computadores podem ser facilitados com a utilização de simuladores [3], sendo uma abordagem benéfica para que os alunos entendam seu comportamento e possam visualizar a execução de programas para montagem real de uma arquitetura.

Existem muitas técnicas de ensino utilizando simuladores para representar arquiteturas reais ou hipotéticas [2]. Estas técnicas, porém, não permitem uma abordagem construtivista onde os alunos possam criar suas próprias arquiteturas.

Neste sentido, esse trabalho aborda uma metodologia para modelagem e simulação 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 matemático de computação

concorrente que trata “atores” como sendo os elementos primitivos da computação concorrente digital [6].

Dada as limitações das soluções e propostas existentes, este trabalho propõe uma metodologia para o ensino de Organização e Arquitetura de Computadores apoiada pela simulação 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 didático onde os alunos possam criar seus próprios modelos de arquitetura de maneira simples, interativa e didática.

2. Trabalhos Relacionados

Os simuladores computacionais são recursos

tecnológicos que podem auxiliar em diversas áreas. No contexto abordado neste trabalho, os simuladores auxiliam os professores a provocar, favorecer e orientar situações controladas de ensino e aprendizagem, pedagogicamente interessantes para o nível de ensino que deseja. Do ponto de vista pedagógico, simuladores computacionais são softwares úteis e simples, uma vez que levam os alunos a interagirem com os mesmos, o que lhes facilita a compreensão de conceitos abstratos, leis e características do mundo físico.

Segundo Felix [4], em tal disciplina é notável a necessidade de ferramentas gráficas e didáticas para auxiliar o aprendizado. Especificamente para explicar a arquitetura de processadores, pois são necessárias muitas figuras para ilustrar os caminhos de dados e de controle quando uma instrução é executada.

Para a disciplina de Organização e Arquitetura de Computadores, podemos citar algumas ferramentas voltadas para o campo da informática educativa, especificamente em uma das áreas correlatas (processadores) ao tema da pesquisa. Dentre os vários processadores, dos mais simples aos mais complexos, destacamos o processador MIPS (Microprocessor

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

13

Page 18: Workshop sobre Educação em Arquitetura de Computadores

without Interlocked Pipe Stages). O MIPS é uma arquitetura de microprocessador projetada com objetivo de oferecer alto desempenho na execução de código compilado. Suas instruções são todas de 32 bits, mesmo nos processadores de 64 bits, como forma de manter a compatibilidade. Todas as operações aritméticas no MIPS utilizam valores contidos nos registradores e os resultados também são colocados em um registrador.

O WebMIPS [1] possui uma plataforma gráfica visualmente agradável para simular a arquitetura MIPS com pipeline. Ele possui a vantagem de ser uma plataforma disponível na Internet, proporcionando uma interface dinâmica, a qual o estudante pode ter acesso sem ter que instalar módulos do simulador.

O DIMIPSS [4] (Didact Interactive MIPS Simulator) é um software multiplataforma de simulação da execução (caminho de dados e de controle) das instruções do MIPS Monociclo. Ele recebe um programa em linguagem de montagem (assembly), o converte para a linguagem de máquina e representa graficamente o comportamento do caminho de dados e de controle durante a sua execução.

O MARS (Mips Assembly and Runtime Simulator) desenvolvido por Vollmar e Sanderson [9] é uma ferramenta em Java com a IDE gráfica implementada usando Swing que simula um conjunto de instruções do MIPS32. A versão atual é a 3.8 e implementa 98 instruções, 36 pseudo-instruções 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 números inteiros, e 32 para números representados em pontos flutuantes.

O WinMIPS64 [8] possibilita a visualização da instrução passando pelos pipelines, e ainda estatísticas relativas à execução, como, por exemplo, quantidade de ciclos que determinada instrução consumiu para passar por todos os estágios do pipeline.

E por último descrevemos o MipsIt [3] que é um ambiente de desenvolvimento integrado e que também realiza a simulação do processador MIPS, possibilitando a programação em alto nível e permitindo relacionar conceitos de programação com organização e arquitetura de computadores.

A Tabela 1 descreve uma análise comparativa entre ferramentas de simulação. Os tópicos abordados baseiam-se nos estudos de [7] para avaliar o potencial educacional dos simuladores.

Tabela 1: Análise comparativa entre as ferramentas no ensino de Arquitetura de Computadores Ferramentas A B C D E F WebMIPS AA N S IL S S DIMIPSS BA N S IL N N MARS BA N S PL N S WinMIPS64 BA N N IL S S MipsIt AA N S IL/PL N S Ptolemy BA/AA S S CL/IL N S Legenda:

(A) Ambiente e Complexidade (B) Suporte ao Projeto (C) Apresentação Visual (D) Nível de Simulação (E) Ensino a Distância (F) Detalhamento da Implementação

Onde (A) avalia se o simulador apresenta noções

básicas da introdução à Organização e Arquitetura de Computadores. Os níveis de avaliação são Arquitetura Básica (BA) e Arquitetura Avançada (AA). O critério (B) avalia se o simulador inclui ferramentas de apoio à elaboração de modulos informatizados reutilizáveis ou apenas simula sistemas pré-definidos.

Para o critério (C) existem aqueles simuladores que detalham visualmente o funcionamento interno de um sistema computacional seguindo um fluxo de dados, ou aqueles onde os resultados são apresentados de forma textual, com a possibilidade de seu pós processamento. Ainda sobre os critérios utilizados, o (D) diz respeito ao nível de detalhamento do comportamento de um objeto exposto, com base no nivel mais baixo de granularidade suportado durante uma seção de simulação. Podendo ser: Nível de Clock (CL), Nível de Instrução (IL) ou Nível de Programa (PL). Para o critério (E), com base na disponibilidade de suporte para ensino à distância, os simuladores podem ser divididos entre aqueles com e sem suporte para o critério. E finalizando o (F) avalia se os simuladores fornecem detalhes da execução visíveis durante a simulação.

Após a análise das ferramentas verificou-se que o Ptolemy é o único que possibilita suporte ao projeto (B), pois permite que o aluno crie seus próprios elementos e possa reutilizá-los em diferentes níveis de abstração, como também em outros projetos e arquiteturas. Além disso, o Ptolemy possui algumas vantagens em relação às outras ferramentas, como por exemplo: i) no WebMIPS [1] as modificações que ocorrem nos caminhos de dados e controle durante a execução das instruções não são apresentadas; ii) O DIMIPSS [4] não é uma ferramenta web, dificultando o ensino a distância. Além de só implementar um pequeno número de instruções do MIPS monociclo; iii)

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

14

Page 19: Workshop sobre Educação em Arquitetura de Computadores

o MARS não possui suporte a depuração e não permite que o usuário desfaça etapas de execução; iv) o WinMIPS64 [8] não possui uma área para edição do código de execução pelo usuário; v) já o sistema MipsIt [3] a arquitetura do processador MIPS, ilustrada no MipsIt, possui complexidade acima do desejável para ilustração de conceitos aos alunos que estão ingressando em cursos de Computação.

Podemos concluir que apesar do framework Ptolemy não ser um simulador didático (não possuindo um procedimento para o ensino a distância e de ter uma interface gráfica complexa), ele oferece a funcionalidade de criação de um repositório de atores, possibilitando ao aluno criar seus próprios cenários, como também seus atores, além de ser uma ferramenta gratuita e com o código fonte aberto, possibilitando que novas funcionalidades e mudanças na sua interface sejam realizadas para torná-la uma ferramenta apropriada para fins educacionais.

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 Organização e Arquitetura de Computadores. Mas para conseguir êxito em tal objetivo, foram verificadas algumas barreiras para a utilização da ferramenta: i) Ptolemy é um software para fins científicos e industriais com interface pouca amigável para usuários inexperientes. ii) Ptolemy não 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 não terá controle sobre o que os alunos fizeram com o ambiente ou com os atores.

Além destas barreiras, foi realizada uma análise de usabilidade no framework Ptolemy, buscando compreender e apontar as necessidades do software para torná-lo uma ferramenta de ensino eficaz, para auxílio na disciplina de Arquitetura de Computadores, de forma mais simples e mais amigável.

Na realização da avaliação de usabilidade, foi utilizada a técnica diagnóstica de inspeção via checklist, com o auxílio da ferramenta Ergolist1, desenvolvida pelo Laboratório de Utilizabilidade da UFSC/SENAI (LabiUtil), coordenado pelo Prof. Dr. Walter de Abreu Cybis. Essa ferramenta possui dezoito checklists, totalizando 193 questões.

Na Figura 1 é apresentado um gráfico referente às estatísticas da avaliação de usabilidade do Ptolemy II na ferramenta Ergolist. O eixo horizontal apresenta os 1 Para acessar o Ergolist, visite: http://www.labiutil.inf.ufsc.br/ergolist/check.htm

critérios de avaliação e o eixo vertical apresenta o percentual de questões conformes, não-conformes e não-aplicáveis em cada critério.

Após a avaliação, podem-se destacar problemas de usabilidade nos seguintes critérios, cujo percentual de questões não-conformes se sobressaíram:

• Feedback: o Ptolemy II apresentou quase 60% de questões não-conformes, tendo em vista que, por existir uma documentação muita extensa, muitas tarefas executadas não fornecem um feedback apropriado para o usuário ficar mais seguro do que está fazendo;

• Flexibilidade: o sistema deve disponibilizar diversas formas de se realizar uma tarefa e possibilitar efetuar modificações. Com quase 67% de questões não-conformes, no Ptolemy II só é possível essa flexibilidade se o usuário conhecer Java e XML; • Proteção contra erros: esse critério diz respeito aos mecanismos de detecção e prevenção de erros de entrada de dados ou comandos e ações não recuperáveis. O Ptolemy II obteve mais de 85% de questões não-conformes, pois a maioria dos erros é detectada na validação dos arquivos XML e classes Java; Buscando atender às necessidades do software para

torná-lo uma ferramenta apropriada para o ensino de Organização e Arquitetura de Computadores, o trabalho descreve duas melhorias: i) tornar sua interface mais amigável, com instruções em português, e para que instruções passo a passo sejam dadas aos alunos na montagem de seus ambientes na forma de atividades; ii) Verificar automaticamente os exercícios feitos pelos alunos e dar feedback sobre o que pode ser melhorado.

4. Extensão Ptolemy para fins educacionais

A extensão desenvolvida permite que o usuário modele suas próprias arquiteturas utilizando o repositório de atores específicos para a disciplina de Arquitetura de Computadores. A nova interface contribuirá para que o professor demonstre na prática aos seus alunos tópicos abordados na ementa da disciplina, como: hierarquia de memória, registradores, barramentos, dispositivos de entrada/saída e a abordagem estrutural no estudo de computadores. De forma a especificar a nova arquitetura do Ptolemy para fins educacionais, foram utilizados padrões de projeto de interface [5], estudo de

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

15

Page 20: Workshop sobre Educação em Arquitetura de Computadores

Figura 1: Avaliação da usabilidade do Ptolemy

algumas ferramentas educacionais (seção 2) e abordagens para software educativo.

Inicialmente foram desenvolvidos atores para representação dos componentes da arquitetura do processador MIPS como estudo de caso. Com a aplicação da ferramenta almeja-se estender sua aplicação para outras arquiteturas de processadores, memórias, dispositivos de Entrada e Saída etc. 4.1. Interface gráfica Vergil

A nova interface foi implementada na versão 8.0.1 do Ptolemy. Seu desenvolvimento foi na linguagem de programação Java, utilizando o compilador Eclipse Helios Service Release 2.

Ao acessar a interface gráfica [6], o usuário 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 didático também salvo.

No caso (a) o usuário utilizará a interface para modelagem e simulação, onde terá duas opções: i) criar um roteiro didático, clicando na opção do menu “Descrição de Exercício” (Figura 3), utilizando os atores da biblioteca, selecionando os obrigatórios, suas propriedades e as conexões entre eles, além de salvá-lo e/ou simulá-lo ou ii) criar seu próprio modelo utilizando a biblioteca, salvá-lo e/ou simulá-lo.

Em relação ao item (b) o usuário poderá abrir projetos existentes, adicionar/editar atores, salvá-los e simulá-los por último, o item (c) possibilita que ele abra roteiros didáticos existentes, resolvendo os exercícios propostos, verifique possíveis erros através do Checker e receba um checklist da avaliação.

A Figura 2 apresenta uma visão geral da estrutura para modelagem e simulação em Arquitetura de Computadores, seguindo uma aplicação didática do professor para o aluno. Na nova interface é visualizada as mudanças sugeridas para criação dos roteiros didáticos e da avaliação automática dos alunos, respectivamente, (a) Descrição do Exercício e (b) Verificação Automática. 5. Roteiro didático

Para ilustrar o roteiro didático aplicado aos alunos, é detalhado um exercício sobre o comportamento de uma Unidade Lógica Aritmética – Arithmetic Logic Unit (ALU) que é a unidade do processador que executa as operações aritméticas e lógicas referenciadas pelos códigos de operações (opcodes). O ator criado para representar a ALU suporta oito operações (AND, OR, ADD, SUB, MUL, DIV, SLT, E NOR) em um circuito combinacional que calcula uma saída de 32 bits baseada em duas entradas de 32 bits e uma entrada de 4 bits que especifica a operação da ALU a ser executada além de computar bits para verificar se existiu overflow.

No Ptolemy, a simulação é orientada ao ator. Logo, o aluno poderá estudar o caminho de dados e controle verificando o fluxo de dados através da simulação do cenário, pois as interações entre atores são mensagens com base na passagem dos dados de entrada e saída.

No exercício sugerido (Figura 3), o aluno deverá resolver a equação (2X+Y)2 utilizando números binários.

O exercício consiste na utilização das operações da ALU, calculando a equação na base binária, onde X = 10 e Y = 11.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

16

Page 21: Workshop sobre Educação em Arquitetura de Computadores

Figura 2: Visão geral da estrutura da nova interface gráfica

O aluno deverá adicionar seis atores (ALU) ao cenário, juntamente com outros atores que correspondem aos valores de X,Y (ator Const) e Operação da ALU, além dos atores Clock e Display (para exibir o resultado), conectando-os de forma que suas relações efetuem os cálculos para a equação sugerida, informando na sua saída o valor binário numa sequência de 32 bits.

Figura 3: Exercício proposto

De forma a oferecer um feedback ao aluno, o mesmo poderá utilizar a opção do menu Verificação Automática para corrigir possíveis erros no seu cenário. Onde, caso o aluno não adicione algum ator obrigatório ao cenário, será informado uma mensagem de erro, conforme a Figura 4.

Figura 4: Erro (Ator obrigatório pendente)

A Figura 5 ilustra dois exemplos da resolução do exercício, um feito de forma correta, e outro com erros cometidos pelo aluno.

No projeto “ALUAluno.xml” o aluno seguiu todas as recomendações da Figura 3 e teve como resultado o valor “11001”. Já no projeto “ALUAlunoErrado.xml” o aluno não seguiu as recomendações para o valor de entrada de Y, adicionando o valor “111” e conectou indevidamente a entrada “operation code” da ALU4 na relação conectada a operação da ALU (Multiplicação), sendo a correta a da (Adição). Logo, o resultado não foi o esperado.

Outras mensagens de erros foram configuradas para colaborar com o aprendizado do aluno. Na Figura 6 são apresentados os erros referentes à propriedade do ator Y (valor indevido) e das conexões dos atores e suas relações. 6. Considerações Finais

A extensão do Ptolemy ainda está em

desenvolvimento, mas pelo seu potencial educacional que possibilita aos alunos criarem seus próprios modelos, combinarem novos elementos em diferentes níveis de abstração e ampliarem seus estudos, espera-se com sua aplicação em sala de aula que os alunos possam resolver roteiros didáticos e verifiquem os erros existentes de uma forma clara e intuitiva.

Na próxima etapa, a extensão criada incorporará a verificação automática na nova interface gráfica e será aplicada com alunos de graduação em Ciências da

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

17

Page 22: Workshop sobre Educação em Arquitetura de Computadores

Figura 5: Resolução do exercício

Figura 6: Mensagens de erro informadas no projeto do aluno

Computação a fim de efetuar testes e analisar os resultados produzidos. Referências [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. [2] Brito, A. V. Simulação Baseada em Atores para o Ensino de Arquitetura de Computadores. Apresentado no Workshop sobre Educação em Arquitetura de Computadores (WEAC) – Simpósio Brasileiro de Arquitetura de Computadores. SBAC, São Paulo, 2009. [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. WCAE‘02.Alaska),p.1 -8. [4] Felix, A. F; Pousa, C. V. e Carvalho, M. B. DIMIPSS: Um simulador didático e interativo do MIPS . Apresentado no Workshop sobre Educação em Arquitetura de

Computadores (WEAC) – Simpósio Brasileiro de Arquitetura de Computadores. SBAC, Ouro Preto - MG, 2006. [5] Koscianski, A., Soares, M. S. Qualidade de Software: Aprenda as metodologias e técnicas modernas para o desenvolvimento de software. Editora: Novatec. São Paulo – SP. 2007. [6] Lee, A, 2007. Neuendorffer, S. Tutorial: Building Ptolemy II Models Graphically. Technical Report No. UCB/EECS-2007-129. [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. [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.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

18

Page 23: Workshop sobre Educação em Arquitetura de Computadores

Arquitetura de Computadores em uma Simples Folha de Papel

Ricardo FerreiraDepartamento de Informatica

Universidade Federal de VicosaVicosa, MG, 36570 000

[email protected]

Abstract

Este trabalho apresenta um estudo inicial do uso deuma ferramenta simples para coletar um retorno dos alu-nos e uma participacao efetiva nas aulas de arquiteturasde computadores. Os estudantes fazem exercıcios sim-ples em conjunto com o professor ou isoladamente, du-rante a apresentacao dos conceitos teoricos. Dois temassao abordados no artigo: memoria e encaminhamento deinstrucoes. Os exercıcios sao formatados para ficar em umafolha de papel. O uso foi avaliado apenas em um semestreletivo e apresentou uma melhora qualitativa. Os resultadosainda sao preliminares para uma avaliacao quantitativa.

1. Introducao

Estudos recentes vem mostrando uma preocupacao emmudar a abordagem tradicional de ensino para os novosjovens da geracao Y [3]. Os jovens nascidos nas duasultimas decadas sao considerados por alguns pesquisado-res como geracao Y. Sao dinamicos, fazem muitas tarefassimultaneas, mas tem grande dificuldade ao ficarem presosem uma sala de aula para manter a concentracao por maisde 50 minutos [3].

A disponibilidade da tecnologia com a internet e suas fa-cilidades de uso vem gerando modificacoes na sociedade.Os jovens fazem uso intenso da internet, por meio de note-books, telefones celulares, se comunicam por redes sociais,etc.

O uso da tecnologia e uma alternativa com a disponibili-dade de recursos multimıdia, ferramentas colaborativas emsıtios na internet com animacoes, vıdeos, etc. Uma ferra-menta interessante sao os clickers [2]. O professor faz aexposicao da aula e varias pausas entre os topicos. Mostraperguntas simples no formato de multipla escolha, falso ouverdadeiro, afirmativas. O estudante responde com o clic-ker escolhendo a opcao sim ou nao, a, b ou c. No mesmoinstante o professor tem o retorno dos alunos e sabe se deve

retornar ao topico e explicar ou esclarecer o assunto ou sepode seguir adiante, tendo uma ideia precisa da percepcaodos alunos. Notebooks ou celulares tambem podem ser usa-dos neste tipo de abordagem atraves da rede WIFI que estadisponıvel na maioria dos ambientes universitarios. Jaosclickers e o software especıfico tem que ser adquiridos paratal finalidade.

Apesar da teconologia ajudar e trazer grandes benefıcios,muitas vezes o uso intensivo de projetores multimıdia geramuita dispersao na turma. Este trabalho apresenta uma ideiasimples de baixo custo e de facil implementacao. Duranteas aulas cada aluno recebe um ou no maximo duas folhasde papel (como ilustrado nas figuras no final do artigo). Nafolha tem exercıcios numericos sobre o assunto da aula queo estudante faz durante a dinamica da aula. O professorpode fazer uso de simuladores de circuitos ou processado-res, do projetor multimıdia ou de um simples quadro negro.O importante e a participacao do estudante para o qual saodelegadas varias pequenas tarefas para ficar ativo e partici-pativo na aula, gerando duvidas e questoes.

Com o objetivo de ilustrar a abordagem de ensino, doistemas e alguns exercıcios serao serao utilizados. O pri-meiro envolve o conceito de memoria virtual e memoriacache. Apesar de simples o conceito de memoria virtual,a implementacao devido ao uso de ponteiros e indirecoesgera duvidas nos estudantes. O segundo exercıcio e maisdireto, encaminhamento no pipeline de 5 estagio do MIPS.

2. Memoria

Os conceitos de memoria cache e virtual sao muito im-portantes para a compreensao do alto desempenho dos com-putadores e sua evolucao nas ultimas decadas. A ideia dememoria cache e simples e em geral bem assimilada pe-los estudantes. O uso de notacao decimal e um exercıcionumerico simples gera rapidamente resultados na compre-ensao das polıticas de escrita. A secao 2.1 mostra umexercıcio simples com este intuito. O conceito de paginacaoem dois nıveis com a paginacao da tabela de paginas e uso

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

19

Page 24: Workshop sobre Educação em Arquitetura de Computadores

Cache tempo→ MemoriaL Tag Dado End Dado0 12 11 12 22 40 3

. . .

9

Figura 1. Cache e Mem oria no Estado Inicial

de TLB (Translation lookaside buffer), gera mais duvidas.A secao 2.2 apresenta outro exercıcio que e formatado emuma unica folha que ajuda os estudantes a entender o con-ceito.

2.1. Cache

A metodologia deste trabalho, envolve a elaboracao deexercıcios numericos para os topicos de arquitetura. Osexercıcios tem o objetivo de complementar os exercıcios jadisponibilizados em livros classicos da literatura [4].

Iremos ilustrar um exercıcio simples com uma cachede mapeamento direto, sistema decimal para facilitar aintroducao ao assunto, polıtica de escrita write-back.O es-tudante tem que preencher o conteudo inicial da cache queaparece em branco (veja figura 1). Executar a sequenciade operacoes e deixar o conteudo final da cache, mostrandoo rastreio das operacoes. Os estudantes compreende semdificuldade os conceitos e manipulando os tags e dados nu-mericamente ao executar o exercıcio.

Suponha o seguinte enunciado para o exercıcio: ”Ex1.Mapeamento Direto: Suponha uma cache no sistema deci-mal com 10 posicoes e uma memoria com 1000 posicoes.Suponha que o Tag tenha os valores 12, 12, 40 armazena-dos nas linhas 0, 1 e 2 e armazene os dados 1, 2 e 3 naslinhas 0, 1 e 2, respectivamente. Para a memoria suponhaque mem(i) armazena i. Execute uma sequencia de escritase leituras: Ler 430, escrever 10 em 320, ler 241, escrever5 na 012, ler 411 e escrever 45 na 411. Suponha a polıticawrite-back (so atualiza a memoria no caso da retirada dodado da cache). Qual o estado final dos dados na cache e namemoria ? ”.

O resultado final do exercıcio e ilustrado na Figura 2.A evolucao dos tag e dos dados na cache sao mostradosao longo da linha de tempo, entre as tabelas da cache ememoria, onde t e usado para os tags e d para os dados. Namemoria, como usamos um campo extra para endereco, osenderecos podem ser ordenados ou aparecer na sequenciado exercıcio mostrando no tempo como a memoria e al-terada ou nao, ja que a polıtica write-back e adotada noexercıcio.

A primeira coluna mostra a linha e deixa claro o con-ceito do Tag do mapeamento direto. O fato de escrever

Cache tempo→ MemoriaL T D t d t d t d End Dado0 12 1 43 430 32 10 120 11 12 2 24 241 41 411 41 45 121 22 40 3 01 5 402 3

012 12430 430320 320241 241411 411

9

Figura 2. Cache e Mem oria no Estado Final

e ler, mostra a polıtica write-back em funcionamento. Ouso de notacao decimal facilita o conceito inicial da cache.Variacoes com outras caches com totalmente associativa oumapeamento por conjunto, polıtica write through de escritae o conceito de bloco podem ser incorporados ao mesmoformato de exercıcio. A notacao binaria ou hexadecimaltambem pode ser usada.

2.2. Virtual

Esta secao apresenta um exemplo de paginacao em doisnıveis com TLB. O exemplo e dimensionado para o estu-dante visualizar todo o possıvel conteudo da memoria reale virtual em uma unica folha como ilustrado na figura 3. Apagina de memoria possui 4 entradas. A memoria real tem32 entradas em 8 molduras. A memoria virtual tem 64 en-tradas em 16 paginas. O tamanho da TLB pode variar, noexemplo usamos uma TLB com 4 entradas.

A tabela de pagina tem 2 nıveis. O primeiro nıvel tem 2bits ou 4 entradas. Cada entrada leva a 2 bits ou 4 entradasno segundo nıvel. Ou seja, sao dimensionados no tama-nho da pagina. O endereco virtual tem 6 bits no formatoP1P0S1S0O1O0. OndeP e o primeiro nıvel,S o segundonıvel eO e o offset dentro O endereco real tem 5 bits no for-matoM2M1M0O1O0, ondeM e a moldura eO e o offset.A TLB realiza o mapeamento direto entreP1P0S1S0 paraM2M1M0.

Varios conceitos sao trabalhados no exercıcio. Suponhao conteudo inicial das memorias ilustrado na Figura 3. Con-sidere o exemplo sem o uso da TLB para o estudante rea-lizar o mapeamento e verificar que sao feitos tres acessos amemoria real em um caso de sucesso no mapeamento. Su-ponha a busca do endereco virtual 3 =000011. Suponha queo primeiro nıvel da tabela fique sempre alocado na moldura000. Para o primeiro nıvel ondeP1P0 = 00, a posicao dememoria real00000 e lida e retorna7 = 111. Para o se-gundo nıvel comoS1S0 = 00, a posicao de memoria realsera11100 ou 28 em decimal que sera lida e retornara ovalor 6 = 110. Finalmente, o dado e encontrado no ter-ceiro acesso no endereco real11011 onde a moldura sera amoldura 6 e o offset e 3, o acesso retornara o dadot, que e

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

20

Page 25: Workshop sobre Educação em Arquitetura de Computadores

diferente do dado da memoria virtual onde a posicao 3 ar-mazena d. Ou seja, o estudante visualiza que a memoria realpode ser atualizada sem a necessidade de atualizar a virtual.

A TLB pode ser introduzida, mostrando que a pagina 0esta diretamente mapeada na moldura 6. As outras entradasda TLB podem ser mostradas ao estudante. Outra questao eperguntar para o estudante se ele consegue fazer o mapea-mento inverso e responder as perguntas: Quais as moldurasque estao ocupadas e quais estao livres ? Quais as paginasque estao mapeadas na memoria real e em quais molduras ?Neste exemplo apenas a moldura dois esta livre. As moldu-ras 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 nıvel, como a mol-dura 2 esta livre, ela pode ser alocada para a nova pagina.Apos a alocacao da moldura 2, o que ocorre com a TLB? Se outra pagina for acessada, quais molduras e paginasserao afetadas ? Neste ponto, os conceitos de polıtica deescrita, substituicao na memoria e na TLB sao apresenta-dos. O que deve ser feito: remover uma moldura com umpedaco da tabela de pagina ou com uma pagina fısica. To-dos estes pontos podem ser abordados com uma sequenciade operacoes de leitura e escrita.

Para facilitar o rastreio das operacoes em sequencias,uma marcacao de tempo comt1, t2, . . . , tn pode ser usadapara que o estudante mostre no diagrama da memoria dafigura 3 o que foi modificado em cada passo. Neste exem-plo, sao executadas 5 operacoes det1 a t5. O conteudo damemoria real, virtual e TLB sao atualizados e o estudantetem uma visao completa de todas as operacoes e decisoesenvolvidas.

3. Encaminhamento

Esta secao mostra um exercıcio simples onde o estudantenecessita completar o caminho de dados do processor MIPScom pipeline de 5 estagios. O objetivo e que o estudanteparticipe e encontre os caminhos dos dados em presenca deencaminhamentos, interagindo durante a aula. Ele recebe odesenho basico e apenas precisa completar algumas linhasno instante de tempo correto. Este material complementao texto do livro classico de Patterson e Hennessy [4]. Emgeral no diagrama de tempo, o estudante iniciante nao temmuita dificuldade para visualizar, mas muitos tem duvidasna hora de desenhar os fios extras no caminho de dados.

Na figura 4 sao ilustrados dois trecho de programas emexecucao. Primeiro, o diagrama e entregue ao estudantepara completar. A figura mostra a solucao do exercıcio,onde cada fio extra (linha em destaque no caminho de da-dos) adicionado e numerado e o numero deve aparecer nodiagrama de tempo da execucao das etapas pipeline dasinstrucoes.

Este exercıcio tem sido usado nos tres ultimos anos do

curso de Organizacao de Computadores II da UniversidadeFederal de Vicosa. Em relacao aos anos anteriores houveuma melhora significativa na compreensao e visualizacao.Principalmente quando os estudantes tinham em mao o di-agrama e vao acompanhando o professor para depois faze-rem exercıcios sozinhos que valem poucos pontos (1 pontoem geral), mas sao instrumentos de avaliacao.

4. Resultados Preliminares

Como o trabalho ainda e inicial, alguns exercıcios ja vemsendo utizados a varios semestres e outros a apenas um oudois semestres. Algumas consideracoes iniciais podem serobservadas. A tabela 1 mostra a media das notas dos es-tudantes de Organizacao de Computadores II nos anos de2009, 2010 e 2011. Aparentemente parece que a metodolo-gia nao surgiu efeito com a queda da media e aumento dasreprovacoes, mas iremos explicar a seguir. Por exemplo, emuma cidade a media de paes e 1 por pessoa, onde uma pe-ssoa come tres paes e outras duas nenhum. Temos que olharcom calma a distribuicao das notas na geracao da media.

Em 2011, o uso da metodologia com exercıcios em quasetodas as aulas foi aplicado. Em 2010 e 2009, os estudantesapenas faziam pequenas avaliacoes de 1 ponto de 10 em10 dias sobre os topicos. A diferenca em 2011 foi dispo-nibilizar sempre para o estudante uma ou duas folhas comdesenhos e exercıcios que ele vai completando e fazendodurante a aula. Esta dinamica tem deixado os estudantesmenos dispersos e mais colaborativos e alem de exporemsuas duvidas e participarem mais das aulas.

Ano Alunos Media Reprovados 65+ 85+2009 28 68,4 2 75 12010 38 66,1 2 73 32011 43 65,6 10 77 5

Tabela 1. Desempenho nos anos de 2009,2010 e 2011

De 2009 para 2010, a media caiu 2 pontos, porem aturma aumentou em 10 alunos ou em 30%. Vale ressal-tar que a turma de 2011 foi a maior turma em numero dealunos e teve a media de 65,6. Outro ponto que mereceuma consideracao e o numero de reprovacoes. Nos anos de2009 e 2010, apesar de ter apenas 2 alunos reprovados, asquestoes das avaliacoes eram mais simples que as questoesde 2011. Outro ponto que muitos estudantes foram aprova-dos com notas mınimas entre 60 e 65, sendo 7 estudantesem 2009 e 15 em 2010. O numero de reprovados foi pe-queno pois os estudantes que obtiveram notas entre 60 a 65,tiveram oportunidades de avaliacoes extras. Em 2011 naohouve ajuste nas notas, apesar de 12 estudantes nesta faixa

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

21

Page 26: Workshop sobre Educação em Arquitetura de Computadores

de 60 a 65, 5 estudantes tiveram media superior a 85 pon-tos. Em 2009 apenas 1 estudante obteve 85 pontos. Em2010 tres estudantes obtiveram desempenho superior a 85pontos. Ainda e cedo para concluir, mas o que pode serobservado que mesmo com avaliacoes mais rigorosas em2011 e um numero significativo de reprovados, a media daturma se manteve. A parcela da turma que participou efe-tivamente dos exercıcios contribuiu para que notas maioressustentassem a media. Nao foi usado nenhum ajuste (pro-vas suplementares, exercıcios extras) que beneficia-se alu-nos que tivessem notas proximas do mınimo exigido.

Em 2011, 46% dos alunos tiveram media acima de 65pontos. Em 2010 foram 55% e em 2009 forma 68% daturma. Apesar de ter o menor numero de alunos com mediasuperior a 65 pontos em 2011, eles tiveram notas melhoresque gerou uma media proxima aos anos anteriores mesmocom avaliacoes mais rigorosas. Para os alunos com notasacima de 65 pontos, a media em 2009 foi 75, em 2010 caiupara 73 e em 2011 subiu para 77. Ou seja, a metade daturma que participou efetivamente dos exercıcios em 2011foi aprovada com notas maiores que dos anos anteriores.Outro efeito, foi a reducao nas duvidas de ultima hora an-tes das grandes avaliacoes. Os estudantes se mostrarammais preparados. Nao foi medido, mas o tempo medio pararesolucao das provas tambem diminuiu. Metade da turmaresolvia a prova em torno de uma hora a uma hora e meia,uma vez que ja estavam mais preparados para resolver asquestoes da avaliacao.

5. Consideracoes Finais

Este trabalho apresenta uma ferramenta simples e tal-vez considerada obsoleta, onde retornamos a uma folhade papel. Apesar de simples, o mecanismo aumenta aparticipacao do estudante em sala de aula e evita a dis-persao com a participacao efetiva dos estudantes que pas-sam a responder as questoes durante a aula, ter duvidas ecompreender o assunto. Uma solucao mais atual com apoioda tecnologia seria o uso de tablet que ja vem sendo feitoem algumas escolas. A ideia pode ser transportada para otablet sem problema. Pois a metodologia propoe o uso deexercıcios quantitativos para o estudante colocar em praticadurante a aula os conceitos que vao sendo introduzidos, re-duzindo as abstracoes atraves de exemplos concretos ondeele pode interagir e calcular.

Uma ressalva importante e o contexto dos estudantesda Universidade Federal de Vicosa. Apenas estudantes docurso de Ciencia da Computacao foram avaliados, ondealguns tem mais dificuldade ou pouca familariadade comapresentacao estrutural e paralela dos circuitos digitais. Osestudantes tem apenas dois cursos na area de hardware. Oprimeiro curso de Organizacao tem carga horaria de 90 ho-ras e o conteudo: algebra Booleana, circuito combinacio-

nais, maquinas de estados, assembler e projeto de um pro-cessador multiciclo. O segundo curso para o qual foi apre-sentada a metodologia deste trabalho tem 60 horas e envolveos topicos de pipeline e tecnicas de paralelismo a nıvel deinstrucao, memoria cache e virtual, arquiteturas paralelas.A avaliacao dos desempenho da metodologia atraves dasnotas nos tres ultimos anos e muito preliminar, pois o con-junto dos estudantes e muito pequeno. O que foi obser-vado e a melhoria na iteracao professor/aluno, o aumentononumero de perguntas e participacao nas aulas. Estes pontosnao foram medidos. Apenas dois exercıcios foram detalha-dos no artigo, mas uma serie de exercıcios foram aplicados.Por restricoes de espaco nao foram apresentados aqui.

Uma adaptacao da metodologia esta tambem em fasede testes. Durante as aulas praticas no laboratorio, o es-tudante responde a questoes e exercıcios gerados no ambi-ente didatico PVANET da Universidade Federal de Vicosae no ambiente do Google Formularios. O problema da fer-ramenta do Google e a falta de formatacao nas questoes ea impossibilidade de colocar figuras. Apesar disso, paraquestoes simples, o Google e bem facil para o professorformular o questionario, gerar um link WEB, onde os estu-dantes respondem rapidamente as questoes de multipla es-colha ou check box. O professor tem imediatamente acessoaos graficos das respostas e pode avaliar se os pontos abor-dados estao sendo repassados para os alunos. O mais im-portante e o retorno e a participacao dos alunos nas aulas,seja por meio de uma simples folha de papel ou um recursomultimıdia/internet. Outro estudo recente, mostrou a im-portancia de se estudar computacao sem o uso de computa-dores para desenvolver o raciocınio computacional. O ex-perimento vem mostrando bons resultados com criancas ejovens [1].

Em resumo, os resultados mostraram que metade daturma participou das atividades com um retorno na me-lhoria das notas e reducao no tempo medio para realizaras avaliacoes. Em se tratando de um curso de Ciencia daComputacao, onde os alunos em geral nao se interessampelo hardware, outras estrategias devem ser avaliadas e ex-perimentadas para ampliar ainda mais a participacao.

Referencias

[1] M. Fellows. Computer Science Unplugged. Lulu, 2005.[2] J. Fitch. Student feedback in the college classroom: A tech-

nology solution. Educational Technology Research and De-velopment, 52:71–77, 2004. 10.1007/BF02504773.

[3] L. Leszczynski. A cara da geracao y.Revista Ensino Superior,2010.

[4] D. A. Patterson and J. L. Hennessy.Computer organizationand design - the hardware / software interface (4. ed.). Mor-gan Kaufmann, 2009.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

22

Page 27: Workshop sobre Educação em Arquitetura de Computadores

Figura 3. Exercıcio de Mem oria Virtual em 2 nıveis de paginac ao

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

23

Page 28: Workshop sobre Educação em Arquitetura de Computadores

Figura 4. Exercıcio de Encaminhamento

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

24

Page 29: Workshop sobre Educação em Arquitetura de Computadores

BIP IV: Especificação 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 reduzir a abstração de conceitos de lógica de

programação nos primeiros semestres de cursos da área de computação, a família de processadores BIP e o ambiente de desenvolvimento integrado Bipide foram desenvolvidos. Os processadores da família BIP disponibilizados na primeira versão da ferramenta Bipide apresentam algumas limitações, pois não oferecem suporte a chamadas de procedimentos e a interação com o usuário através de operações de entrada e saída, o que impossibilita sua utilização em problemas mais complexos ou que necessitem de alguma interação. Neste contexto, este trabalho apresenta o desenvolvimento do processador BIP IV, que estende as características dos processadores BIP, agregando novas funcionalidades e aumentando a abrangência de sua utilização. Também foram implementadas modificações na IDE Bipide a fim de suportar o uso do processador BIP IV. Com isto, aumenta-se a interação do aluno com a ferramenta e seu uso na resolução de problemas mais complexos. 1. Introdução

Com o objetivo de auxiliar o processo de ensino-aprendizagem nos semestres iniciais de cursos de Ciência da Computação, foi proposta uma abordagem interdisciplinar envolvendo conceitos de arquitetura e organização de computadores nas disciplinas ligadas a aprendizagem de programação [1]. Este enfoque parte de um problema frequente relatado por pesquisadores da área, os quais apontam o alto nível de abstração envolvido nos conceitos de programação como um dos principais aspectos que dificultam a aprendizagem inicial de programação. Acredita-se que a redução da abstração envolvida nesses conceitos pode diminuir os problemas de aprendizagem apresentados pelos alunos iniciantes [2,3].

Para atender esse objetivo, foi desenvolvida uma família de processadores de baixa complexidade denominada BIP (Basic Instruction-set Processor).

Para facilitar a utilização desses processadores no ensino foi desenvolvida também uma ferramenta educacional chamada Bipide [4].

A família BIP foi concebida em níveis de complexidade de arquitetura e organização crescentes, sendo que o processador BIP I oferece apenas instruções de aritmética e de acesso à memória [5]. O BIP II inclui instruções de desvio condicional e incondicional [6], enquanto que o BIP III acrescenta suporte para operações de lógica bit-a-bit. O µBIP, por sua vez, foi desenvolvido com o intuito de ser utilizado no ensino de Sistemas Embarcados, agregando periféricos e funcionalidades típicas 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 compreensão e utilização desses processadores no ensino. Nesse ambiente, é possível criar pequenos algoritmos em Portugol (pseudolinguagem utilizada para facilitar o ensino de algoritmos) e executá-los passo a passo. A interface do Bipide utiliza animações gráficas que ilustram a organização do processador e destacam a linha de código Portugol sendo executada e o assembly correspondente.

Esta abordagem didática tem sido utilizada ao longo de três semestres letivos e tem trazido resultados positivos conforme mencionado em [4]. No entanto, os processadores BIP I, II e III não suportam chamadas de procedimentos ou a interação com o usuário através de operações de entrada-e-saída, o que restringe sua utilização a algoritmos muito simples. Esse aspecto tem gerado limitações quanto ao uso da abordagem para o ensino de conceitos mais abrangentes da aprendizagem de programação. Analisando a bibliografia de apoio utilizada nas disciplinas da área de algoritmos, percebe-se que muitos autores [8, 9] adotam problemas que necessitam interações como entrada-e-saída de dados. Baseado nisso, conclui-se que a interação, via entrada-e-saída de dados, é um

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

25

Page 30: Workshop sobre Educação em Arquitetura de Computadores

componente importante para auxiliar a despertar mais interesse por parte do aluno.

Nesse contexto, a solução apresentada neste trabalho consiste na criação de um novo integrante da família BIP, o BIP IV, que incorpora instruções de entrada-e-saída (E/S), manipulação de vetores e chamadas de procedimentos. Para suportar as novas funcionalidades do BIP IV, várias alterações no ambiente Bipide foram necessárias, incluindo mudanças na estrutura da pseudolinguagem Portugol.

Entre os benefícios da implementação em questão estão: (i) maior interação do aluno com a ferramenta; (ii) aprendizagem de novas funcionalidades e seu funcionamento no processador; (iii) extensão 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 didática interdisciplinar.

2. Família de processadores BIP

Uma prática essencial para o ensino de computação é a experimentação realizada em laboratórios, onde os estudantes podem aplicar o conhecimento teórico adquirido em sala de aula na solução de problemas práticos relacionados às disciplinas estudadas. Nesse aspecto, a escolha de um modelo de processador com características pedagógicas que possibilitem sua utilização em um contexto educacional é de extrema importância para a demonstração dos conceitos relacionados à arquitetura e à organização do computador. Dessa forma, alguns autores e professores optam pela utilização de processadores reais e comerciais, enquanto outros preferem usar um modelo hipotético de processador disponível na literatura [10, 11].

Outra abordagem utilizada é o desenvolvimento de um modelo específico de processador que atenda as necessidades pedagógicas do curso [1, 10]. Os processadores BIP foram desenvolvidos por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos e do Grupo de Informática na Educação da UNIVALI (Universidade do Vale do Itajaí) com o intuito de estabelecer uma relação entre a programação de alto nível e sua representação em hardware, auxiliando o aprendizado nas disciplinas “Arquitetura e Organização de Computadores” e “Algoritmos e Programação”, ministradas nas fases iniciais dos cursos de graduação na área de Computação [4].

Os processadores BIP são baseados na arquitetura do processador PIC (Programmable Intelligent Computer), utilizam uma arquitetura orientada a acumulador e não possuem banco de registradores. Todas as instruções são baseadas em um único formato

de instrução composto por apenas dois campos: o código de operação (de 5 bits) e o operando (de 11 bits) [6]. O acumulador é utilizado como operando implícito da maioria das instruções.

A organização dos processadores BIP é baseada em uma estrutura de memória do tipo Harvard, com memórias separadas para dados e programa [6]. O processador é estruturado em dois blocos: o Controle e o Caminho de Dados. O primeiro é responsável por buscar e decodificar as instruções da memória de programa, gerando sinais de comando para a execução das instruções pelo Caminho de Dados.

Os processadores BIP representam níveis incrementais de complexidade de arquitetura e de organização. O processador BIP I [5] suporta instruções aritméticas e de transferência. O processador BIP II [6] estende o BIP I agregando instruções de desvio condicional e incondicional necessárias para a implementação de laços de repetição. O processador BIP III agrega instruções de lógica bit-a-bit, enquanto que o µBIP [7] adiciona funcionalidades típicas de microcontroladores.

3. O ambiente integrado Bipide

O ambiente Bipide foi concebido pela necessidade de um simulador educacional que permitisse relacionar os conceitos de lógica de programação com aspectos definidos no hardware dos processadores BIP I e BIP II. Este ambiente possibilita a criação de algoritmos em Portugol e sua execução passo a passo. A ferramenta permite visualizar o código correspondente ao programa em linguagem assembly e o estado dos componentes da organização do processador através de animações que ilustram o funcionamento interno do processador [4].

O subconjunto da linguagem Portugol utilizada no ambiente Bipide foi definido segundo as características arquiteturais dos processadores BIP I e BIP II. Foram disponibilizadas estruturas de desvio e de laços de repetição, além dos elementos básicos necessários para estruturar um algoritmo [4].

O Bipide apresenta um compilador integrado, construído através da ferramenta ANTLR3 (ANother Tool for Language Recognition V.3) [12]. Foram construídos os analisadores léxico e sintático e definidas as ações semânticas para geração do código em linguagem de montagem e tratamento de erros. Utilizou-se também a IDE ANTLRWorks, a qual é composta por um ambiente de desenvolvimento de gramáticas para o ANTLR3.

O módulo de simulação do Bipide permite a visualização simultânea dos programas em Portugol e assembly, assim como a organização do processador, o

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

26

Page 31: Workshop sobre Educação em Arquitetura de Computadores

que contribui para a redução das abstrações apresentadas nos conceitos de programação [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 criação de aplicações com interfaces ricas, agregando ao Bipide funcionalidades mais intuitivas e recursos de animação que permitem uma maior interatividade com o usuário.

4. Proposta interdisciplinar

As iniciativas de criação de processadores com objetivo didático normalmente buscam apoiar as disciplinas diretamente envolvidas, como “Arquitetura e Organização de Computadores”. A criação da família de processadores BIP, com suas diferentes versões, permitiu trabalhar níveis de complexidade diferentes e com isso explorar os conceitos de arquitetura e organização de computadores em diferentes disciplinas do primeiro, segundo, terceiro e sétimo semestres do curso de Ciência da Computação da UNIVALI. De forma semelhante, esse aspecto facilitou o estabelecimento de relações entre as diferentes disciplinas envolvidas, numa abordagem interdisciplinar. [1].

Sabe-se que a utilização de processadores simplificados no ensino, como é o caso dos processadores BIP, auxilia a melhorar a compreensão de conceitos relacionados à aprendizagem inicial de programação reduzindo seu grau de abstração. Essa abordagem pode facilitar a aprendizagem dos alunos que apresentam problemas em lidar com abstrações [1].

Motivados por essa proposta, uma série de trabalhos foram desenvolvidos, disponibilizando novos recursos e ferramentas a serem utilizados na abordagem citada, entre os quais a criação 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 família BIP foi desenvolvido. Este processador, designado BIP IV, possui funcionalidades intermediárias aos processadores BIP III e µBIP, permitindo operações de E/S, manipulação de vetores e o uso de subrotinas. Estes recursos suprem uma necessidade apresentada pelos processadores disponibilizados anteriormente, no que diz respeito às restrições arquiteturais impostas pelas versões anteriores.

O suporte a este novo processador no ambiente Bipide também foi implementado, permitindo ao aluno compreender as novas funcionalidades através de

simulação, bem como a representação dessas em linguagem de baixo nível.

5. Arquitetura do BIP IV

A especificação do BIP IV aproveita algumas instruções presentes no µBIP e estende o BIP III. Além de possibilitar operações de entrada-e-saída e chamada de procedimentos, foram incluídas instruções de deslocamento e de manipulação de vetores.

Para suportar as operações de E/S, foi adotado o método de E/S mapeada em memória, utilizado no µBIP, não sendo necessárias grandes modificações na arquitetura e na organização do processador [7]. Os registradores IN_PORT (entrada) e OUT_PORT (saída) são utilizados para acesso à interfaces de E/S. A Tabela 1 resume a arquitetura do BIP IV, identificando as classes de instrução suportadas pelos diferentes processadores da família (do BIP I ao BIP IV).

O código de operação dos processadores BIP é composto por 5 bits, permitindo identificar até 32 instruções. O conjunto de instruções do BIP IV é formado por 28 instruções. Do total de 32 códigos de operação possíveis, restam três para novas instruções, sendo que um é utilizado para representar a instrução de retorno de interrupção no µBIP [7]. Ressalta-se que as instruções acrescentadas ao BIP IV foram herdadas do processador µBIP.

A organização do BIP IV foi baseada na organização do processador BIP III com a adição de alguns componentes presentes no µBIP para suportar manipulação de vetores e chamada de sub-rotinas, além dos pinos de E/S (registradores IN_PORT e OUT_PORT). Estes componentes incluem uma pilha de suporte a procedimentos, onde será salvo o endereço de memória da instrução seguinte à chamada da sub-rotina e uma unidade de manipulação de vetores.

6. Suporte ao BIP IV no Bipide

Para implementar o suporte ao BIP IV na

ferramenta Bipide, foram levantadas características relacionadas à interfaces de E/S de simuladores de arquitetura similares. Essas características permitiram definir aspectos que orientaram a construção da interface de E/S utilizada no Bipide. A seguir descreve-se a análise realizada e a implementação do suporte ao BIP IV na ferramenta Bipide.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

27

Page 32: Workshop sobre Educação em Arquitetura de Computadores

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 instrução 16 bits Formato de instrução 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Cód. Operação Operando

Modos de endereçamento Direto: o Operando é um endereço da memória Imediato: o Operando é uma constante Indireto: o Operando é um endereço base de um vetor que é somado ao INDR para o cálculo de um endereço efetivo da memória de dados

Registradores ACC: acumulador PC: contador de programa STATUS: registrador de Status INDR: registrador de índice SP: apontador do topo da pilha

Classe de instução (Processadores)

Controle: HLT Armazenamento: STO Carga: LD e LDI Aritmética: ADD, ADDI, SUB e SUBI

(BIP I-IV)

Desvio: BEQ, BNE, BGT, BGE, BLT, BLE e JMP (BIP II-IV) Lógica booleana: AND, OR, XOR, ANDI, ORI, XORI e NOT (BIP III-IV)

Deslocamento Lógico : SLL e SRL Manipulação de vetor: LDV e STOV Suporte a procedimentos : RETURN e CALL

(BIP IV)

6.1. Análise de trabalhos similares

A análise 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 características observadas nos trabalhos citados.

Dentre os simuladores estudados, alguns apresentaram interfaces de E/S baseadas em controles simples, como representações de chaves e LEDs, outros apresentam também visores ilustrando valores em decimal ou em hexadecimal. Essas interfaces possibilitam resolver problemas simples, onde a entrada e a saída são números, 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 opções de edição e leitura em decimal.

A Tabela 2 apresenta a comparação entre os sistemas analisados e a proposta implementada no Bipide. Outras características relacionadas ao desenvolvimento de programas em linguagem de alto nível e à simulação da organização também foram levantadas.

Observa-se na comparação realizada, que os sistemas Bipide e MipsIt apresentam as mesmas características, sendo os únicos a permitir programação em linguagem de alto nível. No entanto, a arquitetura do processador MIPS, ilustrada no MipsIt, possui complexidade acima do desejável para a apresentação de conceitos iniciais de programação. Já a arquitetura do BIP, tendo sido criada para propósito didático, possui a simplicidade necessária para ilustração desses conceitos. Percebe-se ainda que o ambiente Bipide possibilita a simulação da organização dos processadores BIP, permitindo que o aluno visualize graficamente, por meio de animações, o funcionamento dos componentes do processador. Considera-se essa característica um grande diferencial da ferramenta, contribuindo para o aprendizado.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

28

Page 33: Workshop sobre Educação em Arquitetura de Computadores

Tabela 2. Características dos Sistemas Analisados Simulador Simula Organização Suporta linguagem de alto nível Interface de E/S NeanderWin Não Não Chaves e visor GNUSim8085 Não Não Campo Editável MipsIt Sim Sim Chaves e LEDs ABACUS Não Não Chaves e LEDs WinMIPS64 Não Não Terminal Bipide Sim Sim Chaves e LEDs

6.2. Implementação

Para contemplar o suporte ao BIP IV, o ambiente Bipide foi alterado de modo a suportar as seguintes características dos processadores BIP III e BIP IV: (i) operações de E/S; (ii) utilização de vetores; (iii) chamada de sub-rotinas com passagem de parâmetros; e (iv) operações de lógica. Para isso, as alterações feitas no Bipide incluem mudanças na gramática Portugol e novas verificações nas ações semânticas, assim como alterações na geração de código assembly e mudanças no simulador.

Em sua versão anterior, o simulador do Bipide permitia escolher entre os processadores BIP I e BIP II, refletindo em mudanças nas instruções disponíveis, ilustrações e animações do processador. Para manter esse conceito, o simulador foi alterado de modo a permitir escolher, além do BIP I e BIP II, os processadores BIP III e BIP IV. Entre as alterações feitas na IDE, destaca-se ainda a interface de E/S, ilustrada pelo item 8 da Figura 1, onde é possível visualizar o conteúdo dos registradores $in_port e $out_port. Pode-se ainda atribuir valores ao registrador $in_port através das chaves disponíveis na interface ou digitando-os em notação decimal.

Os recursos do Bipide, ilustrados na Figura 1, são descritos a seguir:

1. Simulações: Disponibiliza botões que permitem controlar a simulação, incluindo a simulação passo a passo;

2. Velocidade: Permite controlar a velocidade da simulação do programa;

3. Portugol: exibe o programa Portugol que está sendo simulado destacando a linha em execução;

4. Assembly: Exibe o código assembly gerado pelo compilador. A linha do programa em execução é destacada bem como todo o conjunto de instruções que correspondem à linha de código em alto nível destacada na janela Portugol;

5. Organização do Processador: exibe a imagem da organização do processador (BIP I, BIP II, BIP III ou BIP IV), bem como as animações que representam as instruções em execução. Na ilustração é exibida a organização do BIP IV;

6. Registradores: exibe os valores dos registradores do processador durante a simulação do programa;

7. Descrição: exibe o nome e a descrição de cada instrução executada; e

8. Interface de E/S: permite ao usuário visualizar e informar valores em decimal ou binário.

Figura 1. Interface do Bipide

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

29

Page 34: Workshop sobre Educação em Arquitetura de Computadores

A interface de E/S adotada permite a resolução de problemas onde a entrada e a saída são números. Além disto, possibilita simular o controle de dispositivos periféricos 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 vão desde o desenvolvimento de um algoritmo que realiza a soma de dois números inteiros até o controle da rotação de um motor de passo (onde a ativação de determinados bits em uma sequência determinada de passos são necessários para produzir o movimento de rotação do dispositivo). 7. Conclusões

Este artigo apresentou o desenvolvimento do

processador BIP IV e a implementação de alterações realizadas na IDE Bipide para suportar este processador. As alterações realizadas na IDE Bipide ampliaram seu potencial pedagógico, permitindo o desenvolvimento de algoritmos mais complexos do que os suportados pela versão anterior da ferramenta.

Esta amplitude de possibilidades favorece a adoção do ambiente Bipide como software de apoio em outras disciplinas dos cursos da área de computação, que até então tinham dificuldades na utilização da ferramenta devido às restrições impostas pela arquitetura dos processadores BIP disponíveis anteriormente. Isso amplia o potencial pedagógico de uma abordagem educacional interdisciplinar que busca reduzir o nível de abstração envolvido em conceitos de programação, colaborando para a melhoria do ensino de computação.

Com as novas funcionalidades e possibilidades de exploração disponibilizadas, pretende-se obter novas evidências sobre a redução dos problemas de aprendizagem associados à abstração 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 nível, como C e Java, e a realização de experimentos práticos que permitam avaliar empiricamente os benefícios obtidos com as novas funcionalidades disponibilizadas.

Referências [1] C. A. Zeferino et al., Um Enfoque Interdisciplinar no

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

[2] M. McCracken et al., A Multi-National, Multi- Institutional Study of Assessment of Programming Skills of First-year CS Students. SIGCSE Bulletin, USA, n. 33, v. 4, p. 125-140, 2001.

[3] 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.

[4] P. V. Vieira, A. L. A. Raabe, C. A. Zeferino, Bipide – ambiente de desenvolvimento integrado para a arquitetura dos processadores BIP. Revista Brasileira de Informática na Educação, Vol. 18, No 1, 2010.

[5] D. Morandi et al., Um processador básico para o ensino de conceitos de arquitetura e organização de computadores. Hífen, Uruguaiana, v. 30, p. 73-80, 2006.

[6] D. Morandi, A. L. A. Raabe, C. A. Zeferino, Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores. In: WEAC 2006, Proceedings... Porto Alegre: SBC, 2006. p. 17-24.

[7] 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.

[8] J. A. N. G. Manzano, J. F. Oliveira, Algoritmos: lógica para desenvolvimento de programação de computadores. 17. ed. São Paulo, SP: Érica, 2005.

[9] N. Ziviani.,Projeto de algoritmos: com implementações em Java e C++. São Paulo, SP: Thomson, 2007.

[10] 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. 449-458, 2009.

[11] A. Clements, Selecting a processor for teaching computer architecture. Microprocessor and Microsystems, USA, v. 23, n. 5, p. 281-290, 1999.

[12] P. Terence, The Definitive ANTLR Reference, The Pragmatic Bookshelf, Dallas, Texas, 1997.

[13] Microsoft Corporation. Windows Presentation, 2011. [14] Microsof Corporation. Expression Blend, 2011. [15] J. A. S. Borges, G. P. Silva, NeanderWin – um

simulador didático para uma arquitetura do tipo Acumulador. In: WEAC 2006. Proceedings… Porto Alegre: SBC, 2006.

[16] GNUSim8085. GNUSim8085, 2003. [17] 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.

[18] R. M. Ziller, ABACUS, 1999. [19] M. Scott, WinMIPS64, 2010.

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2011)

30