• Nenhum resultado encontrado

UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA DEPARTAMENTO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA DEPARTAMENTO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO"

Copied!
25
0
0

Texto

(1)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA

DEPARTAMENTO DE INFORMÁTICA

BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

BERG ÉLISSON SAMPAIO CAVALCANTE

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

(2)

2011

UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA

DEPARTAMENTO DE INFORMÁTICA

BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

BERG ÉLISSON SAMPAIO CAVALCANTE

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE PROCESSADORES

Monografia apresentada ao Professor Dr. Leonardo Vidal Batista, tutor do PET.Com, UFPB, em cumprimento às exigências do PET do Curso de Ciência da Computação.

ORIENTADOR: Prof. Ms. Hamilton Soares da Silva

João Pessoa - PB 2011

(3)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

BERG ÉLISSON SAMPAIO CAVALCANTE

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

Monografia apresentada ao Professor tutor do PET.Com, UFPB, em cumprimento às exigências do PET do Curso de Ciência da Computação.

BANCA EXAMINADORA

Prof. Dr. Leonardo Vidal Batista

Aluno (a) José Ivan Bezerra Vilarouca Filho

(4)
(5)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

AGRADECIMENTOS

A Deus, por proporcionar a realização deste projeto.

Aos meus pais e avós por me darem as bases para que meus esforços fossem transformados em sucesso.

A minha irmã por estar tão presente em minha vida nesse último ano. Ao meu tio Reginaldo por toda força dada.

A todos os meus amigos por me apoiarem na luta de estudar em outro estado. A Liniker Weyne por ser mais que um amigo, um irmão.

Ao meu tutor do PET, o professor doutor Leonardo Vidal Batista, por seu apoio e seus ensinamentos durante esses dois anos e meio como petiano.

Ao PET.Com pelas oportunidades e conhecimentos adquiridos.

Aos membros do Q7 Soluções por todos esses anos que trabalhamos juntos. Aos amigos de curso por todo aprendizado que passamos juntos.

Aos meus amigos que nunca me esqueceram mesmo quando eu me afastei muito por conta do tempo.

(6)
(7)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

RESUMO

Em arquitetura de computadores é um desafio fazer com que os alunos compreendam o funcionamento de um processador corretamente. Para auxiliar a esta tarefa, são utilizadas aplicações que simulam essas arquiteturas. A partir dessas barreiras do ensino, se propôs desenvolver uma aplicação que simula visualmente as intruções de uma arquitetura didática e implementável. Tais instruções são possíveis de serem visualizadas, tanto com pipeline quanto sem pipeline, o que facilita a compreensão das mesmas e do funcionamento de um processador enquanto realiza uma instrução.

(8)

ABSTRACT

In computer architecture is a challenger to make the students understand the processor working correctly. To help on this task it’s used applications that simulate these architectures. From this restriction to the education it was proposed the application development which visually simulates the instructions of a didactic and implementable architecture. These instructions are possible of being visualized with pipeline or without it. This feature facilitates the understanding of them and the processor operation.

(9)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

LISTA DE FIGURAS

Figura 1: Ilustração do Modelo de Von Neumann. ... 17

Figura 2: Disposição dos Registradores na Microarquitetura. ... 18

Figura 3: Disposição dos Registradores no Simulador. ... 18

Figura 4: Computador com Seis Níveis, no qual o nível 2 é o ISA. ... 19

Figura 5 – Ilustração da Estratégia do Pipeline ... 19

Figura 6 – Objetos do Simulador Modelados no Blender. ... 21

Figura 7 – Instruções Possíveis para a Arquitetura Utilizada. ... 22

Figura 8 – Tela Inicial do Simulador ... 23

Figura 9 – Descrição do Objetico da Instrução. ... 23

Figura 10 – Simulação da Instrução ... 24

(10)

LISTA DE SIGLAS

CAD Computer-aided design

CPU Unidade de Processamento Central

DOS (Disk Operating System) Sistema Operacional em Disco IJVM Instruções da Máquina Virtual Java

ISA (Instruction Set Architecture) Arquitetura do Conjunto de Instruções Mic-2 Arquitetura Apresentada por [Tanenbaum 2006]

PET Programa de Educação Tutorial

PET.Com Programa de Educação Tutorial de Computação UFPB Universidade Federal da Paraíba

ULA Unidade Lógica e Aritmética X3D Extensible 3D

XJ3D X3D Desenvolvido em Java.

(11)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

SUMÁRIO

1. INTRODUÇÃO ... 12 1.1 Trabalhos Relacionados ... 12 1.2 Objetivos ... 13 1.3 Contribuições Esperadas ... 14 1.4 Estrutura Da Monografia ... 14 2. FUNDAMENTAÇÃO TEÓRICA ... 15 2.1 Arquitetura de Processadores ... 15 2.2 Registradores ... 15 2.3 Microarquitetura ... 18

2.4 Pipeline.. ... Erro! Indicador não definido. 2.5 X3D (Extensible 3D) ... 18 3. MATERIAIS E MÉTODOS ... 19 3.1 Materiais ... 19 3.2 Implementação ... 19 3.2.1 Objetos da Cena ... 19 3.2.2 Instruções Implementadas ... 20 3.2.3 Simulador Desenvolvido ... 20

4. DISCUSSÃO E TRABALHOS FUTUROS ... 23

5. CONSIDERAÇÕES FINAIS ... 24

(12)

1. INTRODUÇÃO

A informática tem tido uma relevância cada vez maior nos dias de hoje no cenário educacional. Aplicações para o ensino facilitam a transmissão do conhecimento de professores para alunos através de métodos dinâmicos, massificando uma aula para múltiplos ramos sem haver grande esforço ou repetições desnecessárias.

O uso da computação gráfica tem se mostrado útil nos métodos de aprendizagem em diferentes áreas. O uso de CAD, sistemas computacionais que auxiliam na construção de desenhos técnicos, na geologia, engenharia e arquitetura, por exemplo, mostra o quanto uma interface gráfica com 3D facilita no desenvolvimento de um projeto, no seu entendimento e posterior ensino.

Facilitar a aprendizagem do correto funcionamento de um processador para os alunos e proporcionar também uma visão comparativa sobre algumas possibilidades arquiteturais é um dos principais problemas encontrados no ensino de arquitetura de computadores. Um desafio ainda maior é tornar o conteúdo atrativo visualmente. Várias caixas e fios com letras pequenas tornam os circuitos um assunto de difícil entendimento através de uma simples leitura.

(13)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

Para auxílio a esta tarefa, está sendo desenvolvida uma aplicação com objetivo de prover maior motivação e interesse por parte dos alunos em participar das aulas de arquitetura de computadores. Recursos como animações gráficas tridimensionais estão sendo utilizados para facilitar o entendimento do funcionamento dos processadores, já que na prática não é possível ver o caminho percorrido pela informação processada. Este simulador não exige do aluno nenhum grau de programação para que a arquitetura seja demostrada, Dessa forma é possível efetuar um estudo detalhado dos elementos presentas na arquitetura.

1.1 Trabalhos Relacionados

Existem muitas ferramentas que simulam processadores, como exemplos temos o o Abacus, WinMIPS64 [Scott 2006], SATSim [Wolf e Wills 2000] e o GNUSim8085 [Sridhar 2002].

O Abacus (desenvolvido em Windows) e o GNUSim8085 (desenvolvido para plataformas Unix) simulam o microprocessador 8085 da Intel, o qual vem sido base do ensino de arquitetura de computadores, devido a sua simplicidade, seguindo o modelo de Von Neumann e sem possuir pipeline. Ambos apresentam os valores dos registradores no decorrer da execução das instruções, além de exibir o conteúdo presente na memória do processador.

O simulador WinMIPS64 simula arquitetura do processador MIPS64, que utiliza o pipeline. Essa ferramenta possibilita a visualização das instruções passando pelos pipelines e os valores presentes nos registradores.

Para o ensino de arquiteturas superescalares há o SATSim que não se baseia em nenhum processador real, dessa maneira ele possibilita a configuração da quantidade de unidades funcionais por tipo de instrução, o número de elementos por buffer de reordenação, número de instruções buscadas por ciclo e etc.

1.2 Objetivos

O objetivo deste trabalho é desenvolver um sistema que simule o comportamento das microinstruções em um subconjunto das instruções da Máquina Virtual Java utilizando a arquitetura de processador Mic-2 apresentada por [Tanenbaum 2006].

(14)

1. Desenvolver um simulador de instruções para facilitar o aprendizado do funcionamento de uma microarquitetura.

2. Promover uma plataforma de auxílio ao ensino de conceitos básicos a respeito de microprogramação mostrando o funcionamento em relação a execução das instruções da IJVM em cima da arquitetura Mic-2 usando um modelo 3D.

1.3 Contribuições Esperadas

Espera-se que, ao término deste trabalho, o simulador desenvolvido possa facilitar o aprendizado dos alunos que cursam a disciplina de Arquitetura de Computadores no âmbito da microprogramação.

1.4 Estrutura Da Monografia

A Monografia está estruturada nos seguintes capítulos:

Capítulo 2 – Fundamentação Teórica. Capítulo que visa apresentar e reforçar os principais conceitos teóricos necessários para o desenvolvimento do trabalho.

Capítulo 3 – Materiais e Métodos. Apresenta a descrição dos recursos computacionais e os métodos utilizados para desenvolvimento e avaliação do simulador proposto.

Capítulo 4 – Discussão e Trabalhos Futuros. Apresentação e discussão dos trabalhos futuros para o simulador desenvolvido.

(15)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

2. FUNDAMENTAÇÃO TEÓRICA

2.1 Arquitetura de Processadores

É necessário conhecer a arquitetura interna de um processador para facilitar a compreensão de como ele executa os programas. Em um processador existem vários circuitos chamados de registradores que funcionam como posições de memória onde o seu acesso é extremamente rápido.

Todos os processadores usam uma linguagem baseada em códigos numéricos na memória, onde cada código significa uma instrução no qual chamamos de linguagem de máquina. Os códigos numéricos são representados por siglas que são os nomes das instruções, e os operandos dessas instruções são os registradores, valores existentes na memória e valores constantes.

Alguns processadores são baseados no modelo arquitetural de Von Neumann, e que considera uma unidade central de processamento (CPU) com apenas uma unidade funcional, podendo buscar apenas uma instrução por ciclo de execução como demonstrado na Figura 1.

Figura 1 – Ilustração do modelo de Von Neumann

A arquitetura utilizada foi a Mic-2 proposta por [Tanenbaum 2006], que apesar de não ser comercial é implementável.

2.2 Registradores

(16)

Os registradores usados na microarquitetura são: MAR (de endereço de memória), MDR1 e MBR2 (de dados de Memória), PC (contador de programa), SP (apontador da Pilha), LV (apontador para a base das variaveis locais, localizada na pilha), CPP (aponta para o POOL de constantes, apontadores para outras áreas de Memória), TOS e OPC (são temporários) e H (um acumulador). Veja nas figuras 3 e 4 como eles estão dispostos na arquitetura e no simulador.

Figura 2 – Disposição dos registradores na Figura 3 – Disposição dos registradores no Microarquitetura Simulador

2.3 Microarquitetura

A lógica digital é uma ferramenta que trabalha apenas com variáveis cujos valores alternam exclusivamente entre dois estados e não admitem valores intermediários, assim ela é ideal para trabalhar com grandezas cujos valores são expressos no sistema binário.

(17)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

Figura 4 – Computador com seis níveis, no qual o nível 2 é o ISA.

2.4 Pipeline

Para o ensino de arquitetura de computadores, é interessante demonstrar o conceito de pipeline, técnica de hardware que permite que a unidade central de processamneto realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de memória dentro do processador (CPU) onde aguardam o momento de serem executadas, esta técnica faz com que o tempo de processamento de uma instrução seja menor do que o tempo que seria gasto caso o pipeline não fosse utilizado. A estratégia do pipeline é demonstrada na Figura 2.

(18)

2.5 X3D (Extensible 3D)

O X3D (Extensible 3D) é um padrão aberto adotado internacionalmente para disponibilização de conteúdos tridimensionais na Web [Brutzman e Daly 2007]. Ele permite descrever em um arquivo, formas e comportamentos de ambientes virtuais tridimensionais complexos e interativos.

A visualização destas cenas descritas em X3D é realizada através de browsers específicos que consistem em aplicações capazes de interpretar e processar os arquivos X3D, apresentando os modelos tridimensionais, animados ou não, e permitindo interações do usuário com os objetos. Os browsers X3D (também chamados de navegadores ou players) podem se apresentar como plugins ou applets em navegadores Web como o Mozilla Firefox ou Google Chrome, ou como aplicações independentes [Web3D Consortium 2011].

(19)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

3. MATERIAIS E MÉTODOS

Este capítulo descreve os recursos utilizados e os métodos que foram desenvolvidos. A metodologia empregada neste trabalho foi a de implementar o simulador proposto. Pesquisar e implementar a simulação das microinstruções.

3.1 Materiais

Para gerar o simulador proposto neste trabalho, foi utilizado o browser Xj3D, a API SAI (Scene Access Interface) que permite manipulação do grafo de cena X3D, e a linguagem de programação Java, para programar toda interatividade do aplicativo. Tudo foi executado no ambiente com as seguintes especificações:

Processador: Intel Core 2 Duo T6400 2.00 GHz Memória (RAM): 3,00 Gb

Tipo de Sistema: Sistema Operacional Windows© Seven™ Professional 32 bits

3.2 Implementação

Nesse subtópico será mostrado como o simulador proposto foi implementado.

3.2.1 Objetos da Cena

(20)

Figura 6 – Objetos do simulador modelados no Blender

3.2.2 Instruções implementadas

Uma instrução é um conjunto de microinstruções que são executadas no processador para que o resultado seja obtido. As instruções se utilizam da memória, da ULA e principalmente dos registradores para serem finalizadas. Na figura 7 podemos ver as instruções possíveis para o simulador em questão.

Figura 7 – Microprogramas possíveis para a arquitetura utilizada.

As instruções implementadas com e sem pipeline são: IADD, IOR, IAND, ISUB, NOP, ILOAD, dup, BIPUSH BYTE, WIDE, IDC_W1, INC, IFEQ e POP. Restando apenas IRETURN, SWAP, IF_ICMPEQ e ISTORE.

3.2.3 Simulador Desenvolvido

O simulador produzido demonstra o funcionamento do processador didático apresentado em [Tanenbaum 2006].

(21)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

O simulador é composto por uma interface gráfica que contém uma lista das instruções disponíveis, uma breve descrição do objetivo da instrução escolhida e um espaço reservado para o visualizador da simulação. Na lista fornecida, o usuário escolhe qual instrução do processador deseja visualizar como ilustrado na Figura 8.

Figura 8 – Tela Inicial do simulador.

Após a escolha da instrução o botão “OK” deve ser pressionado. Então uma breve descrição com o objetivo da instrução é mostrada logo após, como se observa na Figura 9.

Figura 9 – Descrição do objetivo da instrução.

(22)

Figura 10 – Simulação da instrução.

A memória e todos os outros elementos do processador são representados em um contexto tridimensional. A simulação demonstra a sequência de passos da execução de uma instrução na Figura 10, desde sua saída da memória até seu retorno, caso ocorra. A exibição de cada passo é feita através da interpolação das cores ou posição dos elementos que estiverem ativos. Cada instrução exibida contém um conjunto de micro-instruções que são demonstradas pela exibição passo-a-passo a cada clock, de acordo com o conceito de pipeline visto anteriormente, e são marcadas com uma cor diferente com o objetivo de demonstrar o clock e o pipeline como demonstrado na Figura 11. Para melhor visualização, a câmera acompanha o fluxo de passos da execução da instrução, focando nos blocos que estão sendo utilizados em determinado momento da simulação.

(23)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

4. DISCUSSÃO E TRABALHOS FUTUROS

O entendimento do funcionamento de uma determinada arquitetura é uma tarefa difícil de ser compreendida quando se estuda apenas a teoria. Isto evidencia a importância do uso de simuladores neste contexto.

A partir dessa constatação, o simulador apresentado neste trabalho visa facilitar o entendimento da arquitetura baseada no modelo de Von Neumann. A facilitação da compreensão ocorre devido à apresentação intuitiva das informações ao usuário pelo simulador. Os trabalhos correlatos encontrados na literatura apresentam apenas informações textuais dos valores de registradores, flags e memória, e algumas estatísticas.

O presente trabalho propõe que o fluxo de informações do processador seja ilustrado através de um ambiente 3D, que torna simples a visualização de informações saindo de um objeto como o barramento, registrador, ou ula, para outros através da mudança de cores dos mesmos. O principal objetivo desse simulador é facilitar o entendimento dos alunos de cursos da Ciência da Computação e similares no estudo da arquitetura dos computadores. Outra característica que o diferencia positivamente, em relação aos demais simuladores citados nesse trabalho, é a possibilidade de visualizar uma mesma instrução sendo executado em uma mesma arquitetura de processador, com e sem o uso do pipeline, facilitando de forma substancial a compreensão dessa importante evolução ocorrida na área.

(24)

5. CONSIDERAÇÕES FINAIS

(25)

AMBIENTE DE SIMULAÇÃO GRÁFICA 3D PARA ENSINO DA ARQUITETURA DE COMPUTADORES

REFERÊNCIAS BIBLIOGRÁFICAS

BORGES, JOSÉ ANTONIO S., SILVA, GABRIEL P. (2006) “NeanderWin - Um Simulador Didático para uma Arquitetura do Tipo Acumulador” .

BRUTZMAN, D., DALY, L., (2007) “X3D: 3D Graphics for Web Authors”. Morgan Kaufmann Publishers.

MOREIRA, ANGÉLICA A., MARTINS, CARLOS AUGUSTO PAIVA DA SILVA. (2009) “R2DSim: Simulador Didático do RISC Reconfigurável”

SCOTT, M. (2006) “WinMips64, version 1.5 ,School of Computing, Dublin City University, Ireland”, http://www.computing.dcu.ie/~mike/winmips64.html, 07 2009, 20.

SRIDHAR, Z, (2002) “GNUSim8085, versão 1.3”,

http://gnusim8085.sourceforge.net/index.php/Main_Page, 06 2009, 23.

TANENBAUM, ANDREW S. (2006) “Organização Estruturada de Computadores”, Editora Prentice-Hall.

VERONA, ANDRÉ B., MARTINI, JOÃO A., GONÇALVEZ, TIAGO LOPES (2009) “SIMAEAC: Um Simulador Acadêmico para Ensino de Arquitetura de Computadores”.

Web3D Consortium, “X3D – FAQ (Frequented Asked Questions)”. Online: http://www.lsi.usp.br/~lsoares/x3d/faq.html. Acesso em: março/2011.

Web3D – Part 2: Scene Access Interface, “Extensible 3D (X3D). Part 2: Scene access

interface (SAI). ISO/IEC 197752.2: 2009”. Online:

http://www.web3d.org/x3d/specifications/ISOIECFDIS197752.2X3DSceneAccessInterfac e/index.html. Acesso em março/2010.

WOLFF, M. e WILLS, L. (2000) “SATSim: A Superscalar Architecture Trace Simulator Using Interactive Animation”, In: WCAE: Workshop On Computer Architecture Education, Vancouver, Canada.

Referências

Documentos relacionados

Na primeira linha, da esquerda para a direita: imagem com ruído ( σ = 25), resultado do non-local means original, resultado do prefilt1, resultado do prefilt2 e resultado do

O Custeio Baseado em Atividade nas empresas de prestação de serviço, assim como na indústria, envolve os seguintes passos: os recursos consumidos são acumulados por

intitulado “O Plano de Desenvolvimento da Educação: razões, princípios e programas” (BRASIL, 2007d), o PDE tem a intenção de “ser mais do que a tradução..

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

Muito embora, no que diz respeito à visão global da evasão do sistema de ensino superior, o reingresso dos evadidos do BACH em graduações, dentro e fora da

Declaro que fiz a correção linguística de Português da dissertação de Romualdo Portella Neto, intitulada A Percepção dos Gestores sobre a Gestão de Resíduos da Suinocultura:

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

No caso dos dispositivos para testes de rastreio do sangue (à excepção dos testes de HBsAg e anti-HBc), todas as amostras verdadeiras positivas devem ser identificadas como