Post on 11-Jun-2015
description
Grupo de Sistemas Embarcados e Distribuídos
Ambiente de Desenvolvimento Integrado para uma Arquitetura de
Processador Simplificada
por
Paulo Viníccius Vieira
Orientador: Prof. Dr. André Luis Alice RaabeCo-orientador: Prof. Dr. Cesar Albenes Zeferino
Itajaí, 11 de dezembro de 2008
2
Sumário da apresentação
Introdução
Fundamentação teórica
Projeto
Considerações finais
Referências
3
Introdução
Contextualização e motivação
Alunos costumam apresentar dificuldades na aprendizagem de conceitos de programação
As disciplinas de Arquitetura e Organização de Computadores fornecem subsídios para a aprendizagem e compreensão da lógica de programação
4
Introdução
Contextualização e motivação
BIP – Basic Instruction-set Processor Processador simplificado projetado para auxiliar o aprendizado Utilizado para apresentação de conceitos básicos para um
melhor entendimento das abstrações utilizadas nas disciplinas da área de Algoritmos e Programação
Usado em disciplinas como Computação Básica, Arquitetura de Computadores, Programação, Circuitos Digitais
5
Introdução
Contextualização e motivação
Simuladores de arquitetura permitem estabelecer relações dos conceitos de programação com aspectos concretos do hardware,
variáveis atribuições operações aritméticas laços de repetição
6
Introdução
Definição do problema Alto nível de abstração apresentado nos conceitos de
programação Simuladores focados na Arquitetura e Organização de
Computadores Simuladores disponíveis para ensino costumam
apresentam uma interface de usuário pouco elaborada Codificação do programa em linguagem de máquina
7
Introdução
Solução proposta Ambiente de Desenvolvimento Integrado (IDE) que
auxilie na utilização dos processadores BIP na aprendizagem de programação:criação e execução de programas em linguagem Portugolexibir a linguagem assembly ilustrar o estado dos componentes dos processadores
BIP
8
Introdução
Objetivo geral
Construção de um ambiente de desenvolvimento integrado que possibilite a criação de programas e ilustre sua execução, relacionando-os aos aspectos da arquitetura dos processadores BIP I e BIP II
9
Introdução
Objetivos específicos Consolidar conceitos sobre compiladores e arquitetura
e organização de computadores Estudar a arquitetura dos processadores BIP Implementar e disponibilizar um ambiente de
desenvolvimento integrado programação em linguagem Portugolsimulação dos processadores BIP I e BIP II
Testar e verificar o sistema Documentar e redigir artigo
10
Introdução
Justificativa Promove integração multidisciplinar Aplica e estende conceitos estudados na faculdade Será disponibilizada uma ferramenta que poderá ser
aplicada no ensino, possibilitando a integração entre conceitos da lógica de programação com aspectos de hardware, favorecendo o entendimento das abstrações utilizadas nas disciplinas da área de Algoritmos e Programação
11
Fundamentação teórica
Arquitetura e Organização de Computadores
Processadores BIP
Compiladores
Simuladores de Arquitetura
12
Fundamentação teórica
Arquitetura Refere-se aos atributos visíveis ao programador
Atributos arquiteturais Conjunto de instruções Formatos e tipos de dados Modos de endereçamento Memórias de programa e dados Registradores
13
Fundamentação teórica
Conjunto de Instruções Todas as instruções reconhecidas por um computador
Classe de Instrução Grupos de instruções com propósito e formato
semelhante carga, armazenamento, aritmética, desvio
14
Fundamentação teórica
Organização Trata de como o processador é implementado Refere-se aos atributos do processador não visíveis ao
programador
Caminho de Dados unidade de execução banco de registradores
Unidade de Controle gerencia o fluxo interno de dados, a memória e a comunicação com os
dispositivos de entrada e saída
15
Fundamentação teórica
Organização da Memória
Processador Processador
Memória(Dados e Programa)
Memória de Dados
Memória de Programa
(a) Arquitetura Princeton (b) Arquitetura Harvard
16
Fundamentação teórica
Processadores BIP Desenvolvido por pesquisadores do Laboratório de
Sistemas Embarcados e Distribuídos (LSED) – UNIVALI relacionar programação alto nível com sua representação em
hardware auxiliar no aprendizado de Arquitetura e Organização de
Computadores
Três Versões: BIP I, BIP II, μBIP
17
Fundamentação teórica
Processadores BIP BIP I
níveis de linguagem constantes e variáveis representação de dados conjuntos de instruções geração de código em linguagem de máquina
BIP II desvios condicionais e incondicionais laços de repetição
18
Fundamentação teórica
Processadores BIP
1 formato de instrução
Tipo de Dados: Inteiro
Modos de endereçamento Direto: O operando é um endereço da memória Imediato: O operando é uma constante
19
Fundamentação teórica
Processadores BIP Classes de Instruções
Transferência: STO, LD, LDI
Aritmética: ADD, ADDI, SUB e SUBI
Controle: HLT
BIP I
BIP II
Desvio: BEQ, BNE, BGT, BGE,
BLT, BLE e JMP
20
Fundamentação teórica
BIP I Registradores:
PC e ACC
Baseado em acumulador
CPU
DatapathControl
Decoder
+
+/–
PCena
1
ACCenaWrAccSelB
SelA
Op
Extensão de Sinal
Data MemoryProgram Memory
WrAccOp
SelASelB
WrPC
Addr Data Addr In_Data Out_Data
WrRam
Wr
Opcode
Operand
Instruction
012
01
21
Fundamentação teórica
CPU
DatapathControl
Decoder
+
1
Extensão de Sinal
Data MemoryProgram Memory
WrAccOp
SelASelB
WrPC
Addr Data Addr In_Data Out_Data
WrRam
Wr
Opcode N Z
Operand
Instruction
012
ACCenaWrAcc
SelA
SelB01
+/–Op
Branch
01
PCena
Z N
BIP II Registradores:
PC, ACC
STATUS
Desvios e laços de repetição
22
Fundamentação teórica
Compiladores programas de computador que traduzem de uma
linguagem para outra
Programa Fonte
Programa ObjetoCompiladores
23
Fundamentação teórica
Compiladores Etapas
ProgramaFonte
Análise Léxica
Análise Sintática
Análise Semântica
Programa Objeto
Análise Síntese
Compilador
Geração de Código
24
Fundamentação teórica
Simuladores de Arquitetura Trabalhos similares
25
Fundamentação teórica
Características 4AC MipsItNeander
WinR10k Simularq
VLIW-DLX
Ferramenta Proposta
Programação em alto nível Programação em assembly Visualização da Memória Visualização dos valores dos registradores Execução Passo a Passo Simulação da Organização Identificação de erros de compilação - - - Alteração de valores em tempo de execução - -
Arquivos de Ajuda
Simuladores de Arquitetura
26
Projeto
Análise de requisitos
Definição da Linguagem
Protótipo de Interfaces
Planejamento do TCC II
27
Projeto
Requisitos funcionais O sistema deverá:
permitir ao usuário escrever programas em linguagem Portugol
compilar os programas escritos indicar os erros encontrados durante a compilaçãopermitir a execução do programa passo a passogerar código de máquina para os processadores BIP I e
BIP II
28
Projeto
Requisitos funcionais O sistema deverá:
simular o funcionamento do programa sobre a arquitetura dos processadores BIP I e BIP II
possuir janela de ajudaapresentar funcionalidades típicas de ambientes de
desenvolvimento gerenciamento de arquivos, identação destaque em palavras reservadas localizar e substituir
29
Projeto
Definição da linguagem subconjunto da
linguagem Portugol que represente as operações suportadas
programa <nome_do_programa>declaracoes
<declaracao_de_variaveis>inicio
<instrucoes_do_programa>fim
programa somadeclaracoes
inteiro a, b, soma
inicioa <- 3b <- 2soma <- a + b
Fim
30
Projeto
Conjunto de Símbolos Desvios Laços de repetição Operadores
Descrição Portugol
Declarações
programadeclaracoesdefinainiciofiminteiro
Desvios e laços de repetição
se ___ entaosenaofimseenquanto ___ facafimenquantofaca ___ enquantopara __ ate __ passo __ fimpara
Operadores
<-+, ->, <, <=, >=, !=, =
31
Projeto
Protótipo de Interfaces
32
Projeto
Planejamento do TCC II - Metodologia
Implementação Compilador Simulador Ajuda
Verificação Testes e experimentação no sistema
aplicações de teste
ANTLR
33
Projeto
Planejamento do TCC II - Metodologia
Avaliação Experimento de utilização por alunos da disciplina de
algoritmos do primeiro semestre de 2009 identificar como o uso do sistema auxilia na redução da abstração instrumento de avaliação elaborado e aplicado com a turma de 2008/II
para avaliação comparativa
Documentação
34
Projeto
Planejamento do TCC II Cronograma
35
Considerações Finais
Projeto de uma IDE para uso em disciplinas de programação, permitindo relacionar conceitos de Arquitetura de Computadores com a lógica de programação
Revisão bibliográfica dos principais temas Arquitetura e Organização de Computadores Compiladores Processadores BIP
Trabalhos similares
36
Referências
AHO, Alfred V. et al. Compiladores: princípios, técnicas e ferramentas. 2. ed. São Paulo: Pearson Addison-Wesley, 2008.
HENNESSY, John L.; PATTERSON, David A. Arquitetura de computadores: uma abordagem quantitativa, 2003.
LOUDEN, Kenneth C. Compiladores: princípios e práticas. São Paulo: Pioneira Thomson Learning, 2004.
MORANDI, Diana ; PEREIRA, Maicon Carlos ; RAABE, André Luis Alice ; ZEFERINO, Cesar Albenes . Um processador básico para o ensino de conceitos de arquitetura e organização de computadores, 2006.
PARR, Terence. ANTLR v3 Documentation. 2007. Disponível em: <http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+documentation>. Acesso em: 15 out 2007a.
STALLINGS, William. Arquitetura e organização de computadores: projeto para o desempenho. 5 ed. São Paulo: Prentice Hall, 2005.
VAHID, Frank, GIVARGIS, Tony, Embedded system design: a unified hardware/software introduction, 2002.
WEBER, Raul Fernando. Fundamentos de arquitetura de computadores. 3. ed. Porto Alegre: Sagra Luzzatto, 2004.
Grupo de Sistemas Embarcados e Distribuídos
Ambiente de Desenvolvimento Integrado para uma Arquitetura de
Processador Simplificada
por
Paulo Viníccius Vieira
Orientador: Prof. Dr. André Luis Alice RaabeCo-orientador: Prof. Dr. Cesar Albenes Zeferino
Itajaí, 11 de dezembro de 2008