Computadores de Programação (MAB353)

Tamanho: px
Começar a partir da página:

Download "Computadores de Programação (MAB353)"

Transcrição

1 Computadores de Programação (MAB353) Aula 6: 27 de abril de 2010

2 1 Recaptulando operações já estudadas Operações lógicas 2 3 Exercícios Referências bibliográficas

3 Recaptulando operações já estudadas Operações lógicas Operações aritméticas e de transferência de dados no MIPS Instruções aritméticas add R1, R2, R3: instrui o computador a somar os valores em R2 e R3 e colocar o resultado em R1 sub R1, R2, R3: instrui o computador a subtrair os valores em R2 e R3 e colocar o resultado em R1 addi R1, R2, K: add imediato (o segundo operando é uma constante) Intruções de transferência de dados lw R1, K(R2) : instrução de transferência de dados que copia dados da memória para um registrador sw R1, K(R2): instrução de transferência de dados que copia dados de um registrador para a memória

4 Operações lógicas Recaptulando operações já estudadas Operações lógicas Usadas para operar sobre bits individuais ou sobre campos de bits dentro de uma palavra Operações de shift Movem bits de uma palavra à esquerda ou à direita, preenchendo os bits vazios com 0s shift binário à esquerda: multiplica o valor por 2 i (onde i = tamanho do deslocamento) shift binário à direita: divide o valor por 2 i (onde i = tamanho do deslocamento)

5 Operações lógicas Recaptulando operações já estudadas Operações lógicas Operações booleanas and: operação bit-a-bit que retorna 1 apenas se ambos os operandos são 1 or: operação bit-a-bit que retorna 1 se um dos operandos for 1 not: inverte os valores dos bits do operando

6 Recaptulando operações já estudadas Operações lógicas Operadores lógicos em C e Java e instruções correspondentes em MIPS Logical operations C operators Java operators MIPS instructions Shift left << << sll Shift right >> >>> srl Bit-by-bit AND & & and, andi Bit-by-bit OR or, ori Bit-by-bit NOT ~ ~ nor FIGURE 2.8 C and Java logical operators and their corresponding MIPS instructions. MIPS implements NOT using a NOR with one operand being zero. Copyright 2009 Elsevier, Inc. All rights reserved.

7 Intruções lógicas no MIPS Recaptulando operações já estudadas Operações lógicas Instruções de shift sll (shift left logical): ex., sll $t2, $s0, 4 t2 = s0 << 4 srl (shift right logical): ex., srl $t2, $s0, 4 t2 = s0 >> 4 Instruções booleanas and (AND booleano): ex., and $t0, $t1, $t2 t0 = t1&t2 or (OR booleano): ex., or $t0, $t1, $t2 t0 = t1 t2 nor (NOT OR booleano): ex., nor $t0, $t1, $zero t0 = (t1 zero)

8 Aplicação das instruções booleanas Recaptulando operações já estudadas Operações lógicas and: permite aplicar um padrão de bits sobre um conjunto de bits para forçar o resultado em 0 nas posições 0 do padrão (chamado normalmente operação de máscara) or: permite aplicar um padrão de bits sobre um conjunto de bits para forçar o resultado em 1 nas posições 1 do padrão nor: se um dos operandos for zero, então NOR é equivalente a NOT A NOR 0 = NOT(A OR 0) = NOT(A)

9 Extensões de and (andi) e or (ori) Recaptulando operações já estudadas Operações lógicas Assim como nas operações aritméticas, valores constantes são comuns também nas operações lógicas and e or O MIPS provê as instruções: and imediato (andi) e or imediato (ori)

10 Operações de tomada de decisão O que distingue um computador de uma calculadora simples é a capacidade de tomar decisões Baseado nos valores de entrada o nos valores computados durante a execução do programa, diferentes instruções são executadas Nas linguagens de programação de alto nível, tomadas de decisão são normalmente representadas pela sentença if-else, algumas vezes combinadas com sentenças go to e rótulos de desvio

11 Intruções de desvio Desvio condicional 1 beq (branch if equal): beq R1, R2, L1 vá para a sentença rotulada L1 se os valores dos registradores R1 e R2 forem iguais 2 bne (branch if not equal):beq R1, R2, L1 vá para a sentença rotulada L1 se os valores dos registradores R1 e R2 forem diferentes Desvio incondicional 1 j (jump): j FIM vá para a sentença rotulada FIM

12 Exemplo de implementação de if-then-else em MIPS Considere a sentença em C: if (i == j) f = g + h; else f = g h i=j i= =j? i j Else: f=g+h f=g h Exit: FIGURE2.9 Illustra tion of the options in the if state ment above. The left box corresponds to the then part of the if statement, and the right box corresponds to the else part. Copyright 2009 Elsevier, Inc. All rights reserved.

13 Exemplo de implementação de if-then-else em MIPS Considere que os valores de f,g,h,i,j estão nos registradores $s0 a $s4

14 Tarefas do Montador e do Compilador Rótulos (labels) O Montador libera o programador de linguagem de montagem e o Compilador da tarefa de calcular endereços de desvio, permitindo o uso de rótulos Go to e rótulos Quando go to (desvios) e labels (rótulos) não aparecem na Linguagem de Programação de nível mais alto, é o Compilador quem os constrõe (evitar os problemas de escrever rótulos e desvios é um dos benefícios das LPs)

15 Sumário As instruções de tomada de decisão são importante para escolher entre duas alternativas (uso de if) e para computações iterativas (uso de uma sequência de instruções repetidamente, ex., sentenças while, for, repeat) As mesmas instruções de linguagem de montagem são usadas como blocos fundamentais nos dois casos

16 Exemplo de implementação de while em MIPS Considere a sentença em C: while (save[i] == k) i += 1; Considere que os valores de i, k estão nos registradores $s3 e $s5 e a base do vetor save está em $s6 Como essa sentença pode ser traduzida para MIPS?

17 Exemplo de implementação de while em MIPS

18 slt e slti Avaliam se um valor é menor que outro: slt (set on less than): slt $t0, $s3, $s4 $t0 = 1, se $s3 < $s4 $t0 = 0, se $s3 > $s4 slti (slt imediato): slti $t0, $s3, 10

19 Dicotomia entre números com e sem sinal devem lidar com a dicotomia entre números com e sem sinal: Em números com sinal (complemento a 2), uma padrão de bits com o bit mais significativo igual a 1 representa um número negativo e é sempre MENOR que um padrão de bits com bit mais significativo igual a 0 Com números sem sinal é o contrário, um padrão que inicia com 1 é sempre maior que um padrão que inicia com 0...essas características podem ser exploradas para reduzir o custo da comparação!

20 sltu e sltiu O MIPS oferece duas versões da comparação slt para explorar as alternativas de comparação: 1 slt e slti: trabalham com números com sinal 2 sltu e sltiu: trabalham com números sem sinal Exemplo

21 Comparação dupla Otimização da sentença 0 x < y Tratando números com sinal como se eles fossem sem sinal, nos dá uma maneira de implementar uma sentença do tipo 0 x < y (usada normalmente para checar os limites de um vetor) com baixo custo A idéia básica é que inteiros negativos em C2 são números grandes na notação sem sinal...então uma comparação sem sinal de 0 x < y checa, ao mesmo tempo, x < y e x 0

22 Comparação dupla Exemplo Considere a sentença de comparação dupla 0 x < y e x em $s1 e y em $t2:

23 Implementação de condições relativas Os Compiladores MIPS usam as instruções beq, bne, slt, slti e o registrador $zero para criar as condições relativas: >, <,, =,,

24 Sentença case/switch Muitas LPs oferecem sentenças case ou switch que permitem selecionar uma de várias alternativas, dependendo de um único valor A maneira mais simples de implementar essa sentença é usando uma sequência se testes condicionais, transformando a sentença case/switch em sentenças if-then-else Algumas vezes pode ser mais eficiente codificar a sentença como uma tabela de endereços sequenciais de instruções alternativas, chamada tabela de endereços de desvio (vetor de endereços)... e o programa precisa apenas indexar essa tabela

25 Sentença case/switch e a instrução jr... o programa carrega a entrada apropriada da tabela (endereço para o desvio) em um registrador e faz o desvio usando o valor desse registrador Para dar suporte a essas situações, o MIPS inclui a instrução jr (jump register) ex., jr $t0 desvio incondicional para o endereço contido em $t0

26 Exercícios Sumário Exercícios Referências bibliográficas Primeira lista de exercícios Disponível em silvana/compprog/lista1.pdf

27 Exercícios Referências bibliográficas O produto do pensamento é superior ao produto da intuição. Aristophanes

28 Referências bibliográficas Exercícios Referências bibliográficas 1 Organização e projeto de computadores: a interface hardware/software, D. A. Patterson e J. L. Hennessy, Elsevier, Simulador SPIM (http://pages.cs.wisc.edu/ larus/spim.html)

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Pae II Transferência de Dados Lógicas Controle Supoe a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores

Leia mais

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br MIPS Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 8: 04 de maio de 2010 1 Formatos de instruções MIPS 2 Endereçamento de operandos imediatos de 32 bits Endereçamento em desvios Modos de endereçamento do MIPS 3

Leia mais

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario Arquitetura de Computadores Assembly Miscelâneas Mário O. de Menezes http://www.tf.ipen.br/~mario AC Mário O. de Menezes 1 Lembrando Instruções Lógicas e Shift operam em bits individuais, diferente de

Leia mais

Arquitetura de Computadores. Linguagem de Máquina

Arquitetura de Computadores. Linguagem de Máquina Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP

Leia mais

MODOS DE ENDEREÇAMENTO

MODOS DE ENDEREÇAMENTO UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014 SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO

Leia mais

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

Sistemas Processadores e Periféricos Aula 2 - Revisão Sistemas Processadores e Periféricos Aula 2 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Conjunto de Instruções. Conjunto de Instruções

Conjunto de Instruções. Conjunto de Instruções Conjunto de Instruções It is easy to see by formal-logical methods that there exist certain [instruction sets] that are in abstract adequate to control and cause the execution of any sequence of operations...

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Anotações da 2a Edição

Anotações da 2a Edição Anotações da 2a Edição OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson. Supõe-se que os estudantes tenham noções de lógica digital e linguagem

Leia mais

Conjunto de Instruções

Conjunto de Instruções Conjunto de Instruções Para comandar o hardware do computador, é necessário que falemos sua língua: As palavras da linguagem de máquina são chamadas de instruções; O vocabulário forma o conjunto de instruções,

Leia mais

Sistemas de Computação. Instruções de Linguagem de Máquina

Sistemas de Computação. Instruções de Linguagem de Máquina Instruções de Linguagem de Máquina Linguagem de montagem do processador MIPS Operações aritméticas Instrução Exemplo Significado soma add a, b, c a = b + c subtração sub a, b, c a = b - c Compilação de

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Prof. Doutora Ana Isabel Leiria Ano Lectivo 2004/05 Prof. Doutora Margarida Madeira e Moura Eng. António Rosado Ano lectivo 2005/06 Pág. 1 Guias das aulas práticas 1. INTRODUÇÃO

Leia mais

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

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Conjunto de Instruções e Arquitectura p.1

Conjunto de Instruções e Arquitectura p.1 Conjunto de Instruções e Arquitectura Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Conjunto de Instruções e Arquitectura p.1 Organização

Leia mais

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios 1) Explore conversões de números a partir de números binárias com sinal e sem sinal para decimal:

Leia mais

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores. Ivan Saraiva Silva Arquitetura de Computadores MIPS Pipeline Ivan Saraiva Silva Pipeline 4 pessoas (A, B, C, D) possuem sacolas de roupa para lavar, secar e dobrar A B C D Lavar leva 30 minutos Secar leva 40 minutos Dobrar

Leia mais

Programando o computador IAS

Programando o computador IAS Programando o computador IAS Edson Borin e Rafael Auler 21 de março de 2012 1 Introdução O computador IAS foi um dos primeiros computadores a implementar o conceito do programa armazenado. Neste paradigma,

Leia mais

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

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

O Processador: Caminho de Dados e Controle

O Processador: Caminho de Dados e Controle 22 Capítulo 3 O Processador: Caminho de Dados e Controle O desempenho de um computador é determinado por três fatores principais: o número de instruções executadas, o período do clock e o número de ciclos

Leia mais

RISC simples. Aula 7. 31 de Março de 2005 1

RISC simples. Aula 7. 31 de Março de 2005 1 RISC simples Aula 7 31 de Março de 2005 1 Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de

Leia mais

Caminho dos Dados e Atrasos

Caminho dos Dados e Atrasos Caminho dos Dados e Atrasos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém

Leia mais

Organização e Arquitetura de computadores

Organização e Arquitetura de computadores Organização e Arquitetura de computadores Instruções: a linguagem de máquina Prof. Dr. Luciano José Senger Introdução Operações no hardware do computador Operandos do hardware do computador Representando

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

Aritmética. E agora: Implementação da Arquitetura

Aritmética. E agora: Implementação da Arquitetura Anotações Parte 4 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª. Ed. Supõe-se que os estudantes tenham noções

Leia mais

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:

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: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 7: 29 de abril de 2010 1 2 Subrotinas Um procedimento ou função é uma subrotina armazenada que executa uma tarefa específica baseada nos parâmetros de entrada

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 2- Exemplo de Microarquitetura

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

Leia mais

Visão Geral de Pipelining

Visão Geral de Pipelining Pipeline Visão Geral de Pipelining Instruções MIPS têm mesmo tamanho Mais fácil buscar instruções no primeiro estágio e decodificar no segundo estágio IA-32 Instruções variam de 1 byte a 17 bytes Instruções

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Revisão dependências de dados

Revisão dependências de dados Revisão dependências de dados Dependências de dados resolvidas com adiantamento (quase sempre) Deve garantir que instruções anteriores escreverão resultado, destino é mesmo que fonte, e instrução anterior

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

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

Sistemas Processadores e Periféricos Aula 5 - Revisão Sistemas Processadores e Periféricos Aula 5 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções

Leia mais

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores. Ivan Saraiva Silva Arquitetura de Computadores Introdução Ivan Saraiva Silva Sumário Introdução Bibliografia Recomendada O que é um computador Organização de um Computador Modelo de Von Neumann IAS Máquina de Von Neuman

Leia mais

Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL

Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL José Carlos Pereira Itatiba São Paulo Brasil Dezembro de 2006 ii Curso de Engenharia de Computação DESENVOLVIMENTO DE UM

Leia mais

Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática

Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática Francisco Carlos Silva Junior 1, Ivan Saraiva Silva 1 1 Departamento de Computação Universidade Federal do Piauí (UFPI) Caixa Postal

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Introdução às Linguagens de Programação

Introdução às Linguagens de Programação Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador

Leia mais

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander Objetivos Gerais Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2005 ISA Parte II: Arquiteturas-Exemplo Simuladores e Máquinas Reais Demonstrar os conceitos genéricos

Leia mais

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

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Máquina Multinível Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o processador.

Leia mais

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

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: 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

Leia mais

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

Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores Diana Morandi, André Luis Alice Raabe, Cesar Albenes Zeferino Universidade do Vale do Itajaí UNIVALI Rua Uruguai, 458 Caixa

Leia mais

Usando o simulador MIPS

Usando o simulador MIPS Usando o simulador MIPS O objetivo desta aula prática será a utilização do simulador MipsIt para executar programas escritos em linguagem de máquina do MIPS. 1 Criando um projeto Cada programa a ser executado

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Pipeline Aula #5 28 Mar 06 Revisão Na implementação

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Universidade Federal do Pampa Campus-Bagé Arquitetura e Organização de Computadores Aula 2 Revisão de Conceitos e Introdução a Desempenho Prof. Julio Saraçol juliosaracol@gmail.com Slide1 Aula 2 REVISANDO

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Rafael Vargas Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

Para os problemas seguintes considere os 5 andares de pipelining do MIPS:

Para os problemas seguintes considere os 5 andares de pipelining do MIPS: A. Pipelining Para os problemas seguintes considere os 5 andares de pipelining do MIPS: ETCH () ID (I) EXEC (E) MEM (M) WR (W) Para resolução dos problemas utilize a tabela em anexo, na qual deve indicar

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Introdução à programação em linguagem assembly

Introdução à programação em linguagem assembly Introdução à programação em linguagem assembly Espaço de endereçamento Instruções de acesso à memória Modos de endereçamento Diretivas Tabelas Pilha Rotinas Arquitetura de Computadores Introdução à programação

Leia mais

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Gustavo G. Parma Lista dos comandos assembly que serão utilizados ao longo das práticas. 1 Comandos 1. ADD destino, fonte

Leia mais

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3. Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 30/novembro/2012 1. (4 pontos) Assumindo uma frequência de relógio de 500 MHz para a organização MIPS multiciclo

Leia mais

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo Organização e Arquitetura de Computadores I Introdução Ivan Saraiva Silva Leonardo Casillo Sumário Introdução Bibliografia Recomendada O que é um computador Organização de um Computador Modelo de Von Neumann

Leia mais

ArchC. Wesley Nunes Gonçalves

ArchC. Wesley Nunes Gonçalves Implementação do Processador ARM7 em ArchC Wesley Nunes Gonçalves 23 de novembro de 2007 ARM7 Instruções Implementadas O ARM possui 37 registradores, sendo 31 registradores de propósito geral e 6 registradores

Leia mais

Organização de Computadores Hardware

Organização de Computadores Hardware Organização de Computadores Hardware Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Computador Ferramenta

Leia mais

Funcionamento básico de um computador

Funcionamento básico de um computador Funcionamento básico de um computador Processador Unidade de dados Unidade de controlo Arquitetura de computador básica Linguagem assembly Exemplos Arquitetura de Computadores Funcionamento básico de um

Leia mais

7. Instruções lógicas, de deslocamento e de rotação

7. Instruções lógicas, de deslocamento e de rotação 7. Instruções lógicas, de deslocamento e de rotação São instruções que permitem mudar o padrão de bits num byte (8 bits) ou numa palavra (16 bits). Linguagens de alto nível (exceto C) não permitem manipular

Leia mais

Introdução a Organização de Computadores e Linguagens de Montagem. Ricardo Anido

Introdução a Organização de Computadores e Linguagens de Montagem. Ricardo Anido Introdução a Organização de Computadores e Linguagens de Montagem Ricardo Anido Draft date 15 de Agosto de 2013 Capítulo 3 O processador Faíska Neste capítulo iniciaremos o estudo mais detalhado do repertório

Leia mais

Parte II Introdução a Linguagens de Programação

Parte II Introdução a Linguagens de Programação Programação de Computadores III Aula 1 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados

Leia mais

MAB-353 Computadores e Programação (DCC/UFRJ)

MAB-353 Computadores e Programação (DCC/UFRJ) MAB-353 Computadores e Programação (DCC/UFRJ) Aula 1: 1 Objetivos e ementa Metodologia Material bibliográfico 2 Motivação para a disciplina A linguagem dos computadores 3 Sistemas digitais Perguntas para

Leia mais

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

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

Leia mais

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

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES CAPÍTULO IV AULA II Maio 2014 Índice Processadores Revisões Pipelining Pipeline hazards Hazard estrutural Hazard de dados Hazard de controlo Pipelining datapath Pipelined control

Leia mais

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS Software Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS ESQUEMA DE UM SISTEMA DE COMPUTADOR Unidades de Entrada - Teclado - Scanner - Caneta Ótica - Leitora

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

Programação ao nível da máquina. Operações lógicas e aritméticas

Programação ao nível da máquina. Operações lógicas e aritméticas Programação ao nível da máquina Operações lógicas e aritméticas Operações lógicas e aritméticas Operações: aritméticas: add, sub, inc, dec, cmp lógicas: and, or, xor, not Realizadas pela ALU (Arithmetic

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2004 ISA: Arquitetura de Conjunto de Instruções Roteiro Introdução Classificação de conjuntos de instruções Endereçamento

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Controlo Conjunto de Instruções Unidade Central de Processamento (CPU)

Leia mais

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB 2.3 Dependências de dados (Data Hazards) Ocorre quando uma instrução depende do resultado de outra instrução que ainda está no pipeline. Este tipo de dependência é originado na natureza seqüencial do código

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes

Leia mais

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes

Leia mais

Conjunto de Instruções MIPS

Conjunto de Instruções MIPS Conjunto de Instruções MIPS Ch3-1 RISC X CISC RISC (Reduced Instruction Set Computer) CISC (Complex Instruction Set Computer) 1. Instruções simples 2. Referencias a memória só com LOAD/STORE 3. Uso intensivo

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Aritmética Binária e. Bernardo Nunes Gonçalves

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Organização do MIPS: pipeline Visão geral do pipeline Analogia com uma Lavanderia doméstica 1

Leia mais