Arquitetura de Computadores



Documentos relacionados
Arquitetura e Organização de Processadores. Aula 2. Processadores RISC Apresentação do processador MIPS

ISA Instruction Set Architecture (Revisão) Na Aula Anterior... Nesta Aula. Conceitos. Tipos de Dados. Tipos de Dados 11/03/2019

Arquitetura de Computadores. Linguagem de Máquina

MIPS. Prof. Carlos Bazilio

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

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes.

MODOS DE ENDEREÇAMENTO

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

Organização e Arquitetura de Computadores I

Computadores de Programação (MAB353)

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Aula 14: Instruções e Seus Tipos

RISC simples. Aula de Março de

Operações de Controle de Fluxo e Acesso a Memória. Na Aula Anterior... Nesta Aula. Instruções de Controle de Fluxo. if then - else.

MIPS ISA (Instruction Set Architecture)

Na Aula Anterior... Operações Aritméticas e Lógicas

SSC0611 Arquitetura de Computadores

Na Aula Anterior... Operações Aritméticas e Lógicas. Nesta Aula. Instruções Aritméticas (N e Z) Exemplo 11/03/2019

Guia Rápido MIPS. Tipos de Dados e Formatações

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

SSC0114 Arquitetura de Computadores

Computadores de Programação (MAB353)

Anotações da 2a Edição

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

Arquitectura de Computadores ARQC MIPS. Exemplos. Serviços de Sistema

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

Infraestrutura de Hardware. Instruindo um Computador

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

Organização e Arquitetura de Computadores I

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Relembrando desempenho...

Relembrando desempenho...

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)

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

Microcontroladores e Interfaces

Revisão de Arquitetura e Organização de Computadores. Na Aula Anterior... Abstração de Computadores. Nesta Aula 19/08/2016

Infra-estrutura de Hardware

ARQUITECTURA DE COMPUTADORES

Caminho dos Dados e Atrasos

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

Conjunto de Instruções e Arquitectura p.1

ção de Computadores II

Organização de Computadores

Conjunto de Instruções MIPS Parte IV

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

Organização e Arquitetura de Computadores I

Arquitectura de Computadores

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

Conjunto de Instruções

Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans .data 0x1E20FFF9 seis palavras da memória de programa

ARQUITECTURA DE COMPUTADORES

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

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

ARQUITETURA DE COMPUTADORES

Computador: Hardware + Software

Lista de Revisão para a Primeira Avaliação

Especificação do Projeto de Processador RISC

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Arquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

Arquitetura de Computadores MIPS

ArchC. Wesley Nunes Gonçalves

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

3. INSTRUÇÕES. Instrução é uma palavra da linguagem de máquina. Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony.

2 Formalidades referentes ao trabalho

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

O Processador: Caminho de Dados e Controle

DataPath II Tomando o controle!

Capítulo MC10 Organização Básica de Processadores

Capítulo 3. Instruções: Aritmética MIPS

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

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

Operações Aritméticas e Lógicas e Avaliação de Condições

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

Organização e Arquitetura de Computadores I

Capítulo 3. This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.

UCP: Construindo um Caminho de Dados (Parte I)

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

Arquitetura de Computadores. Tipos de Instruções

PROCESSADOR MULTICICLO MIPS-S

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

Descrição e análise da implementação em Assembly MIPS da função itoa

Organização e Arquitetura de Computadores. Aula 11 Ponto Flutuante Parte II Juliana F. Camapum Wanderley

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

Nível Máquina Formatos de Instruções

Arquitetura de Computadores

ULA Sinais de Controle enviados pela UC

Introdução à Arquitetura de Computadores

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

Representando Instruções no Computador

Arquitetura de Computadores I

Faculdade de Computação

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

Transcrição:

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, modos de endereçamento guntzel@inf.ufsc.br www.inf.ufsc.br/~guntzel/ine641400/ine641400.html

Registradores Arquitetura do MIPS 32 registradores de propósito geral de 32 bits $0, $1,, $31 operações inteiras endereçamento $0 tem sempre valor 0 $31 guarda endereço de retorno de sub-rotina Slide 2.2

Tipos de Dados Arquitetura do MIPS dados inteiros disponíveis em instruções load e store bytes meias-palavras de 16 bits palavras de 32 bits dados inteiros disponíveis em instruções aritméticas e lógicas meias-palavras de 16 bits (estendidos para 32 bits) palavras de 32 bits Slide 2.3

Modos de Endereçamento acessos à memória devem ser alinhados dados de 32 bits precisam iniciar em endereços múltiplos de 4 dados de 16 bits precisam estar em endereços múltiplos de 2 modo registrador para instruções aritméticas e lógicas: dado está em registrador para instruções de desvio incondicional: endereço está em registrador Slide 2.4

Modos de Endereçamento modo base e deslocamento para instruções load e store base é registrador inteiro de 32 bits deslocamento de 16 bits contido na própria instrução modo relativo ao PC para instruções de branch condicional endereço é a soma do PC com deslocamento contido na instrução deslocamento é dado em palavras e precisa ser multiplicado por 4 Slide 2.5

Modos de Endereçamento modo imediato para instruções aritméticas e lógicas dado imediato de 16 bits contido na própria instrução dado é estendido para 32 bits extensão com sinal nas instruções aritméticas extensão sem sinal nas instruções lógicas para que se possa especificar constantes de 32 bits instrução lui (load upper immediate) carrega 16 bits imediatos na parte superior do registrador parte inferior do registrador é zerada instrução seguinte precisa fazer soma imediata do registrador com 16 bits da parte inferior Slide 2.6

Modos de Endereçamento modo absoluto para instruções de desvio incondicional instrução tem campo com endereço de palavra com 26 bits endereço de byte obtido com dois bits menos significativos iguais a 0 4 bits mais significativos obtidos do PC só permite desvios dentro de uma área de 256 Mbytes PC 0 0 Slide 2.7

Instruções Principais Instruções de referência à memória (tipo I): Load word ( lw ) e store word ( sw ) Instruções aritméticas e lógicas (tipo R): ( add, sub, and, or, slt ) Instruções de salto: Branch on equal ( beq ) e jump ( j ) Slide 2.8 slide 1.8

Instruções Principais tipo Instrução exemplo significado Aritmética Add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Aritmética Add add $s1, $s2, $s3 $s1 = $s2 + $s3 Aritmética Subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Aritmética OR or $s1, $s2, $s3 $s1 = $s2 OR $s3 Aritmética AND and $s1, $s2, $s3 $s1 = $s2 AND $s3 Transf. de dados Load word lw $s1, 100($s2) $s1 = Mem[$s2+100] Transf. de dados Store word sw $s1, 100($s2) Mem[$s2+100] = $s1 Transf. de dados Load Upper Immediate lui $s1, 100 $s1 = 100 * 2 16 Desvio cond. Branch on equal beq $s1, $s2, L if($s1 == $s2) go to L Desvio cond. Branch on not equal bne $s1, $s2, L if($s1!= $s2) go to L Desvio cond. Set on less than slt $s1, $s2, $s3 if($s2 < $s3) $s=1; else $s1=0 Desvio cond. Set less than immediate slti $s1, $s2, 100 if($s2 < 100) $s=1; else $s1=0 Desvio incond. Jump j 2500 Desvia para 10000 Desvio incond. Jump register jr s$1 Desvia para $t1 Desvio incond. Jump and link jal 2500 $ra = PC+4; desvia para 10000 Slide 2.9

Instruções Arquitetura do MIPS todas as instruções têm 32 bits todas têm opcode de 6 bits o modo de endereçamento é codificado juntamente com o opcode 31 26 25 0 opcode 6 bits 26 bits Slide 2.10

Instruções formato R: add, sub, or, and opcode = 0 funct define a operação a ser feita pela ALU shamt (shift amount) é usado em instruções de deslocamento 31 26 25 21 20 16 15 11 10 6 5 0 opcode rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits registradores-fonte registrador-destino Simbólico (exemplo): add $s1,$s2, $s3 ($s1 $s2 + $s3)! Slide 2.11

Instruções formato I: load word (ld) e store word (sw) load word (lw): opcode = 35 store word (sw): opcode = 43 31 26 25 21 20 16 15 0 opcode rs rt Deslocam. ou oper. Imediato 6 bits 5 bits 5 bits 16 bits Simbólico registrador-base para o cálculo do endereço de memória registrador-destino (para lw) ou registrador-fonte (para sw) lw $s1, deslocam($s2) ($s1 Mem[$s2 + deslocam] ) sw $s1, deslocam($s2) (Mem[$s2 + deslocam] $s1 ) Slide 2.12

Instrução formato I: Desvio Condicional beq: branch on equal Opcode = 4 Campo deslocamento usado para calcular o endereço-alvo Se o conteúdo do registrador cujo endereço está no campo rs for igual ao conteúdo do registrador cujo endereço está em rt, então salta para a posição endereço+pc+4 31 26 25 21 20 16 15 0 opcode rs rt Deslocam. ou oper. Imediato 6 bits 5 bits 5 bits 16 bits Simbólico registradores a serem comparados beq $s1, $s2, deslocam ( if ($s1== $s2) then PC PC+4+deslocam) Slide 2.13

Instrução formato J: Desvio Incondicional j: jump Opcode = 2 Campo deslocamento usado para calcular o endereço-alvo Se o conteúdo do registrador cujo endereço está no campo rs for igual ao conteúdo do registrador cujo endereço está em rt, então salta para a posição endereço+pc+4 31 26 25 0 opcode endereço 6 bits 26 bits Simbólico j endereço ( PC endereço ) Slide 2.14

Instruções load/store são sempre tipo I qualquer registrador de propósitos gerais ou de ponto flutuante pode ser carregado ou armazenado da / na memória pode-se carregar ou armazenar bytes, meias palavras, palavras ou palavras em precisão dupla ( ponto flutuante ) endereçamento sempre por base e deslocamento Slide 2.15

Instruções load/store lb, lh, lw load byte, halfword, word sinal é estendido em lb e lh lbu, lhu load byte, halfword sem extensão de sinal sb, sh, sw store byte, halfword, word Slide 2.16

Instruções Aritméticas e Lógicas operação entre 2 registradores, resultado num terceiro registrador tipo R add, and, nor, ori, or, sub, xor existem versões com endereçamento imediato addi, andi, ori, xori tipo I comparação compara dois registradores e coloca valor 1 ( ou 0 ) em registrador destino slt, slti $0 usado para sintetizar operações populares carga de constante = soma imediata onde $0 é um dos operandos mover de registrador para registrador = soma com $0 Slide 2.17

Instruções Aritméticas e Lógicas instruções de deslocamento variável tipo R sllv, srlv shift lógico (entra 0 na extremidade) srav shift aritmético (duplica sinal) desloca registrador rt pela distância especificada no registrador rs e coloca resultado no registrador rd instruções de deslocamento constante tipo I sll, sra, srl desloca registrador rt pela distância especificada no campo imediato e coloca resultado no registrador rd Slide 2.18

Instruções Aritméticas e Lógicas instrução de multiplicação: mul multiplica registradores rs e rt resultado colocado em hi (32 msb) e lo (32 lsb) instrução de divisão: div divide registrador rs pelo registrador rt quociente colocado em lo resto colocado em hi instruções de movimentação permitem transferir dados entre hi e lo e os demais registradores mfhi Rd, mflo Rd mthi Rs, mtlo Rs Slide 2.19

Instruções Aritméticas e Lógicas instruções unsigned não geram overflow addu, addiu, divu, multu, subu, sltu, sltiu instruções não-unsigned geram overflow endereço da instrução que causou overflow é colocado no registrador EPC (em um co-processador) instrução mfc0 copia valor do EPC para outro registrador qualquer instrução jr (jump para endereço especificado por registrador) é usada para desviar para rotina de atendimento Slide 2.20

Arquitetura do MIPS Instruções de Desvio Incondicional instrução j tipo J endereço destino = concatenação dos 4 msb do PC com endereço imediato de 28 bits instrução jr tipo I: endereço destino contido em registrador também serve para retornar de sub-rotina instrução jal (jump and link) tipo J desvio para sub-rotina, endereço especificado na instrução endereço de retorno salvo em $31 instrução jalr (jump and link register) tipo R desvio para sub-rotina, endereço especificado em rs slide 1.21 Slide 2.21 endereço de retorno salvo em rd

Instruções de Desvio Condicional são sempre tipo I endereço destino = soma do PC com offset imediato de 16 bits instruções que testam um único registrador bgez, bgtz, blez, bltz desvia se registrador é, >,, < zero bgezal, bltzal como bgez e bltz, mas salva de endereço de retorno em $31 instruções que comparam dois registradores beq, bne desvia se registradores são iguais (diferentes) Slide 2.22

Arquitetura do MIPS Instruções de Ponto Flutuante mover operandos de precisão simples ou dupla entre registradores mov.d, mov.s soma, subtração, negação, multiplicação, divisão em precisão simples e dupla add.s, sub.s, neg.s, mul.s, div.s add.d, sub.d, neg.d, mul.d, div.d comparações em precisão simples e dupla c.eq.s, c.le.s, c.lt.s, c.eq.d, c.le.d, c.lt.d, conversão para ponto flutuante de precisão simples (ou dupla) cvt.s.d, cvt.s.w converter FP double (ou inteiro) para FP single cvt.d.s, cvt.d.w converter FP single (ou inteiro) para FP double conversão de ponto flutuante para inteiro cvt.w.s, cvt.w.d converter FP double (ou single) para inteiro Slide 2.23