Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Documentos relacionados
Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Projetando um Computador Parte II Arquitetura do Processador BIP

Projetando um Computador

Capítulo 3 Processadores de Propósito Geral: Software

Organização e Arquitetura de Computadores I

BARRAMENTO DO SISTEMA

Um Processador Básico para o Ensino de Conceitos de Arquitetura e Organização de Computadores

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Organização e Arquitetura de Computadores I

ULA Sinais de Controle enviados pela UC

MODOS DE ENDEREÇAMENTO

Componentes do Computador e. aula 3. Profa. Débora Matos

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

ArchC. Wesley Nunes Gonçalves

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Arquitetura de Computadores. Tipos de Instruções

Informática I. Aula 5. Aula 5-13/05/2006 1

Estrutura de um Computador

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Bipide Ambiente de Desenvolvimento Integrado

Organização e Arquitetura de Computadores I

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

ARQUITETURA DE COMPUTADORES

28/9/2010. Unidade de Controle Funcionamento e Implementação

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

BIP IV: Especificação e Suporte na Ferramenta Bipide

Introdução à Arquitetura de Computadores

Organização Básica do Computador

ARQUITETURA DE COMPUTADORES

2 Formalidades referentes ao trabalho

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

2. A influência do tamanho da palavra

Computador Cleópatra

Desenvolvimento de um Sistema Operacional de Tempo Real para um Microcontrolador Básico

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Introdução à Engenharia de Computação

Edeyson Andrade Gomes

Sistemas Computacionais II Professor Frederico Sauer

O Processador: Caminho de Dados e Controle

Arquiteturas RISC. (Reduced Instructions Set Computers)

3. O NIVEL DA LINGUAGEM DE MONTAGEM

ARQUITETURA DE COMPUTADORES

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

1.1. Organização de um Sistema Computacional

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Organização de Computadores 1

Nível da Microarquitetura

PAULO VINÍCCIUS VIEIRA AVALIAÇÃO EMPÍRICA DA PROPOSTA INTERDISCIPLINAR DE USO DOS PROCESSADORES BIP

Programando o computador IAS

Computadores de Programação (MAB353)

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Organização e Arquitetura de Computadores I. de Computadores

Unidade Central de Processamento

Organização de Computadores Hardware

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Linguagem de Montagem 2. Operações e Operandos

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Aula 14: Instruções e Seus Tipos

CALCULADORA SIMPLES COM ULA

Arquitetura de Computadores - Revisão -

Sistemas Processadores e Periféricos Aula 5 - Revisão

Capítulo 2 (Livro Texto*) - Notas de Aula - Parte II

Programação Básica usando o Computador Visível. Jorge Fernandes Maio de 2004

Um Enfoque Interdisciplinar no Ensino de Arquitetura de Computadores

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Sistemas Microcontrolados

Componentes de um Computador: Modelo Von Neumann

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

PIC16F628a. Pinagem do PIC16F628a:

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitetura de Computadores. Ivan Saraiva Silva


Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

ENTRADA E SAÍDA DE DADOS

Figura 1 - O computador

Informática I. Aula 4. Aula 4-11/09/2006 1

Capítulo 1 Introdução

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

ARQUITETURA DE COMPUTADORES

4-1. Parte2: A Arquitetura do Conjunto de Instruções

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Arquitetura de Computadores I

Transcrição:

Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo de desenvolver uma série de processadores de arquitetura simplificada que auxiliassem no aprendizado de Arquitetura e Organização de Computadores por alunos de fases iniciais de cursos de graduação em Computação. Outro objetivo do BIP é permitir relacionar os conteúdos de programação com suas representações em hardware, provendo a base necessária para compreensão das abstrações adotadas nas disciplinas da área de Algoritmos e Programação (MORANDI et al., 2006). Nesse contexto, ao buscar estabelecer uma relação entre a programação de alto nível e a sua representação em hardware, podem ser mencionadas as relações entre: (a) declaração de variável e alocação de memória; (b) constantes e operandos imediatos; (c) atribuição de variáveis e operações de acesso a memória; e (d) operações aritméticas e a utilização de unidades de soma/subtração (MORANDI; RAABE; ZEFERINO, 2006). Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: A arquitetura do processador deveria ser simples o suficiente para facilitar o entendimento do seu funcionamento e a sua construção a partir dos conceitos estudados na disciplina de circuitos digitais; A arquitetura deveria ser extensível; e As ferramentas de apoio desenvolvidas no contexto do projeto deveriam priorizar o uso de estruturas de linguagem compreendidas no primeiro ano do curso. De acordo com estas diretrizes, foram definidos inicialmente dois modelos de processador (MORANDI; RAABE; ZEFERINO, 2006): BIP I: com foco no suporte ao entendimento de conceitos como níveis de linguagem, constantes, variáveis, representação de dados e de instruções,

conjuntos de instruções, programação em linguagem de montagem e geração de código em linguagem de máquina; e BIP II: extensão do BIP I, com foco na inclusão de suporte aos conceitos de estruturas de controle para desvios condicionais e incondicionais e laços de repetição. Uma terceira versão de processador, denominada μbip (lê-se microbip), foi desenvolvida. Este processador estende a arquitetura das versões anteriores do BIP e acrescenta suporte a instruções de lógica booleana, deslocamento lógico, manipulação de vetores, instruções de controle, suporte a procedimentos e funcionalidades típicas de microcontroladores como, por exemplo, pinos de E/S e temporizador programável (PEREIRA, 2008). Como o foco deste trabalho é auxiliar o entendimento de conceitos básicos aprendidos nas fases iniciais do ensino de programação, será utilizado somente os modelos de arquitetura simplificada dos processadores BIP I e BIP II... BIP I O BIP I utiliza uma arquitetura baseada na arquitetura RISC do microcontrolador PIC (Programmable Intelligent Computer). Ele é uma máquina orientada a acumulador e não possui banco de registradores. Todas as operações de transferência e aritmética envolvem o acumulador e, em algumas operações aritméticas, é necessário buscar operandos posicionados na memória (MORANDI et al., 2006). A arquitetura do BIP I possui um conjunto de instruções com poucos modos de endereçamento e todas as instruções são baseadas neste formato. Como pode ser visto na Tabela, o formato de instrução esta dividido em dois campos: 5 bits para o código de operação, o que permite implementar até 32 instruções; e bits reservados para o operando, o que possibilita representar até 2048 posições de endereçamento ou qualquer constante com valores entre -024 até +023 (MORANDI; RAABE; ZEFERINO, 2006).

Tabela. Arquitetura do BIP I Tamanho da palavra de dados 6 bits Tipo de dados Inteiro de 6 bits com sinal: 32768 a +32767 Tamanho da palavra de instrução 6 bits Formato de instrução 5 4 3 2 0 9 8 7 6 5 4 3 2 0 Modos de endereçamento Registradores Classes de instrução Fonte: Adaptado de Morandi et al (2006). Cód. Operação Operando Direto: o operando é um endereço da memória Imediato: o operando é uma constante ACC: acumulador IR: registrador de instrução PC: contador de programa Transferência (acesso à memória): STO, LD, LDI Aritmética: ADD, ADDI, SUB e SUBI Controle: HLT A arquitetura do BIP I inclui três registradores: PC, IR e ACC. O contador de programa (PC) aponta para o endereço da próxima instrução que será executada. O registrador de instrução (IR Instruction Register) armazena a instrução que está em execução. O acumulador (ACC Accumulator) é utilizado para armazenamento de dados durante uma operação aritmética ou de atribuição. O conjunto de instruções do BIP I, conforme apresentado na Tabela 2, inclui uma instrução de controle, três instruções de transferência (duas de acesso à memória) e quatro instruções de aritmética. Em cada instrução, exceto na instrução Halt (HLT), o PC é incrementado em uma unidade no final do ciclo de execução da instrução. Na tabela, o termo Memory[operand] representa uma variável armazenada na posição operand da memória de dados. Tabela 2. Conjunto de instruções do BIP I Código da Instrução Operação Classe operação 00000 HLT Paralisa a execução Controle 0000 STO operand Memory[operand] ACC Transferência 0000 LD operand ACC Memory[operand] Transferência 000 LDI operand ACC operand Transferência 0000 ADD operand ACC ACC + Aritmética Memory[operand] 000 ADDI operand ACC ACC + operand Aritmética 000 SUB operand ACC ACC Aritmética

Memory[operand] 00 SUBI operand ACC ACC - operand Aritmética 0000 - Reservado para futuras gerações Fonte: Adaptado de Morandi et al (2006). Como pode ser observado na Tabela 2, O BIP I realiza operações básicas de soma e subtração com variáveis e constantes. Apesar de limitada, sua arquitetura permite ilustrar a implementação em hardware de diversas abstrações estudadas nas disciplinas da área de Algoritmos e Programação (MORANDI et al., 2006)...2 BIP II O BIP II trata-se de uma extensão do BIP I e possui as mesmas características arquiteturais. Uma das mudanças realizadas na extensão do BIP I para o BIP II foi a inclusão da classe de instruções de desvio visando a implementação de desvios condicionais, incondicionais e laços de repetição (MORANDI; RAABE; ZEFERINO, 2006). Com relação aos registradores, o BIP II possui de três a quatro: PC, ACC, STATUS e IR, conforme ilustrado na Tabela 3. Tabela 3. Arquitetura do BIP II Tamanho da palavra de dados 6 bits Tipo de dados Inteiro de 6 bits com sinal: 32768 a +32767 Tamanho da palavra de instrução 6 bits Formato de instrução 5 4 3 2 0 9 8 7 6 5 4 3 2 0 Modos de endereçamento Registradores Classes de instrução Cód. Operação Fonte: Adaptado de Morandi, Raabe e Zeferino (2006). Operando Direto: o operando é um endereço da memória Imediato: o operando é uma constante ACC: acumulador IR: registrador de instrução PC: contador de programa STATUS: registrador de estado com dois flags (Z e N) Transferência (acesso à memória): STO, LD, LDI Aritmética: ADD, ADDI, SUB e SUBI Controle: HLT Desvio: BEQ, BNE, BGT, BGE, BLT, BLE e JMP

Para suportar as instruções de comparação e desvio condicional foi acrescentado um registrador de estado (STATUS). Toda instrução de comparação e desvio condicional deve ser precedida por uma instrução de subtração (SUB ou SUBI). O registrador STATUS possui dois flags que são ativados dependendo do resultado da operação anterior: (i) Z, que indica se o resultado da última operação da ULA foi igual a zero ou não; e (ii) N, que indica se o último resultado da ULA foi um número negativo ou não (MORANDI; RAABE; ZEFERINO, 2006). A Tabela 4 apresenta o conjunto de instruções do processador BIP II. Na tabela, é possível observar as alterações nos registradores ACC (coluna 3) e PC (coluna 4) em cada instrução. Na tabela, o termo Memory[operand] representa uma variável alocada em memória na posição operand.

Tabela 4. Conjunto de instruções do BIP II Código da Instrução Operação e atualização do PC operação 00000 HLT Paralisa a execução PC PC 0000 STO operand Memory[operand] ACC PC PC + 0000 LD operand ACC Memory[operand] PC PC + 000 LDI operand ACC operand PC PC + 0000 ADD operand ACC ACC + Memory[operand] PC PC + 000 ADDI operand ACC ACC + operand PC PC + 000 SUB operand ACC ACC Memory[operand] PC PC + 00 SUBI operand ACC ACC - operand PC PC + 0000 BEQ operand Se (STATUS.Z=) então PC PC + 000 BNE operand Se (STATUS.Z=0) então PC PC + 000 BGT operand Se (STATUS.Z=0) e (STATUS.N=0) então PC PC + 00 BGE operand Se (STATUS.N=0) então PC PC + 000 BLT operand 00 BLE operand Se (STATUS.N=) então PC PC + Se (STATUS.Z=) ou (STATUS.N=) então PC PC + 00 JMP operand 0- Reservado para as futuras gerações Fonte: Adaptado de Zeferino (2007)...3 ORGANIZAÇÃO DO BIP I E BIP II Segundo Morandi, Raabe e Zeferino (2006), a organização do BIP I utiliza a estrutura Harvard, com memórias separadas para dados e instruções, como mostra a

Figura. Conforme a figura, o processador é dividido em dois blocos: (i) Controle, responsável por gerar sinais de controle para o caminho de dados e atualização do PC e; (ii) Caminho de Dados, que inclui os circuitos necessários para executar a instrução. Essa organização é bastante simples e seus blocos constituintes podem ser descritos apenas pela sua funcionalidade, o que atende o objetivo de facilitar o entendimento por parte de alunos de fases iniciais da área de Arquitetura e Organização de Computadores (MORANDI; RAABE; ZEFERINO, 2006). CPU Control Datapath Extensão de Sinal ena + PC Decoder WrPC SelA SelB WrAcc Op WrRam WrAcc SelA ena 2 ACC 0 0 SelB Opcode Operand Op +/ Instruction Addr Data Wr Addr In_Data Out_Data Program Memory Data Memory Figura. Organização do processador BIP I Fonte: Zeferino (2007) A organização do BIP II, conforme mostra a Figura 2, extende a organização do BIP I, incluindo o registrador STATUS e modificações no circuito de atualização do PC. Nas instruções de desvio, a fonte de atualização do PC é definida em função do tipo de desvio e dos valores dos flags N e Z do registrador STATUS (MORANDI; RAABE; ZEFERINO, 2006).

Control CPU Datapath Extensão de Sinal ena PC + 0 Decoder Opcode Branch WrPC SelA SelB WrAcc Op WrRam N Z Operand WrAcc SelA ena 2 0 Op ACC +/ Z N 0 SelB Instruction Addr Data Wr Addr In_Data Out_Data Program Memory Data Memory Figura 2. Organização do Processador BIP II Fonte: Pereira (2008) Referências MORANDI, Diana ; RAABE, André Luis Alice ; ZEFERINO, Cesar Albenes. Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores. In: WORKSHOP DE EDUCAÇÃO EM ARQUITETURA DE COMPUTADORES,., 2006, Ouro Preto. Proceedings of the 8th International Symposium on Computer Architecture and High Performance Computing - Workshops. Porto Alegre: SBC, 2006. p. 7-24. MORANDI, Diana 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. PEREIRA, Maicon Carlos. μbip: Microcontrolador Básico para o Ensino de Sistemas Embarcados. 2008. Trabalho de Conclusão de Curso Faculdade de Ciência da Computação, Universidade do Vale do Itajaí, Itajaí, 2008. ZEFERINO, Cesar A. Especificação da Arquitetura e da Organização do Processador BIP. Itajaí, 2007. (Relatório Técnico).