Conjunto de Instruções MIPS Parte I

Documentos relacionados
Sistemas Processadores e Periféricos Aula 1 - Revisão

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

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

SSC0114 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores

Organização e Arquitetura de Computadores I

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

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

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

Infraestrutura de Hardware. Instruindo um Computador

MIPS ISA (Instruction Set Architecture)

Prof. Gustavo Oliveira Cavalcanti

Organização e Arquitetura de Computadores I

UCP: Construindo um Caminho de Dados (Parte I)

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Prof. Leonardo Augusto Casillo

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

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

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

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

Especificação do Projeto de Processador RISC

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

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Solução Lista de Exercícios Processadores

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

Relembrando desempenho...

Organização de Computadores

Relembrando desempenho...

Infra- Estrutura de Hardware

Conjunto de Instruções MIPS Parte IV

SSC510 Arquitetura de Computadores 1ª AULA

O Funcionamento do Processador

ção de Computadores II

UCP: Construindo um Caminho de Dados (Parte III)

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Unidade Central de Processamento UCP (CPU)

Organização e Arquitetura de Computadores I

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores INTRODUÇÃO

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

Organização de Sistemas de Computadores

Arquitetura e Organização de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

III.2 - Princípios de Arquitetura

4. Modelo de Programação do DLX Introdução

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

SSC0112 Organização de Computadores Digitais I

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

Arquitetura de Computadores. Ciclo de Busca e Execução

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Arquitetura e Organização de Computadores

Organização de Computadores Aula 05

ORGANIZAÇÃO DE COMPUTADORES

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

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Linguagem de Montagem do NeanderX

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

Cap - 3: Linguagem de Máquina - MIPS

O Funcionamento do Processador

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

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

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Instruções. Maicon A. Sartin

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

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

Processador. Processador

UCP: Caminho de Dados (Parte II)

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

CONJUNTO DE INSTRUÇÕES

Endereçamento e Formato de Instruções

Procedimentos. Sistemas de Computação

Organização e Arquitetura de Computadores I

Arquiteturas de Computadores

Execução detalhada de instruções

Disciplina: Arquitetura de Computadores

Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.

Execução detalhada de instruções

Arquitetura e Organização de Computadores

ARQUITETURA DE COMPUTADORES

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Processadores para computação de alto desempenho

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

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.

Organização de computadores. Prof. Moisés Souto

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

Instruções de Máquina

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

DataPath II Tomando o controle!

Arquitetura de Computadores

Transcrição:

Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte I Prof. Sérgio Adaptado dos slides de Sistemas Processadores do Prof. Frank Torres - UFMG O que aprenderemos hoje? Barramento Banco de Registradores... Instruções básicas Princípios de projeto de MIPS Armazenamento na memória Representação de instruções Organização de Computadores Organização de Computadores 2 MIPS: Microprocessor without Interlocking Pipeline Stages. Arquitetura tipo RISC. Versões de 32 e 64 bit (usaremos: 32 bit). Cerca de milhões de processadores MIPS fabricados por ano atualmente. Usada pela NEC, Nintendo, Cisco, Silicon Graphics, Sony, impressoras HP e Fuji, etc. Componentes básicos: Barramento Unidade de controle Banco de registradores Unidade lógica e aritmética (ALU) Contador de programa (PC) Memória Registrador de instruções (IR) Organização de Computadores 3 Organização de Computadores 4

:: Diagrama simplificado O processador MIPS éum RISC de 32 Bits: Tamanho da palavra: 32 bits Tamanho dos registradores: 32 bits Tamanho das Instruções: 32 bits Tamanho dos endereços de memória: 32 bits Organização de Computadores 5 Organização de Computadores 6 :: Barramento A interconexão dos componentes básicos (exceto unidade de controle) se dápor meio do barramento (bus). Barramento éum conjunto de condutores por meio dos quais os bits são transmitidos. Maior parte dos barramentos do MIPS tem 32 bits de largura. :: Barramento Na maior parte das situações, énecessário enviar informações de mais de uma fonte para um sódestino (exemplo: dos 32 registradores para a ALU). Tal tarefa éimplementada no hardware pelos multiplexadores (MUX). Organização de Computadores 7 Organização de Computadores 8

:: Unidade de controle Implementado no nível de hardware para buscar uma sequênciade sinais de controle na memória (programa) e executá-las. Envia sinais de controle para orientar os MUX sobre qual barramento de entrada deve ser selecionado para saída. As trilhas de controle não estão mostradas no diagrama simplificado (slide 6). :: Banco de registradores A arquitetura MIPS possui um banco de 32 registradores. Cada um deles comportam valores de 32 bits. O nome de todos os registradores começa com o símbolo do cifrão: $ Organização de Computadores 9 Organização de Computadores :: Banco de registradores Adota-se uma convenção que especifica quais deles devem ser utilizados em certas circunstâncias. Os registradores PC (contador de programas) e IR (registrador de instrução) não fazem parte do banco de registradores. Organização de Computadores Organização de Computadores 2

Convenção de uso dos registradores Registrador Número Uso $zero Valor constante igual a zero $v-$v 2-3 Retorno de funções $a-$a3 4-7 Argumentos de funções $t-$t7 8-5 Temporários, não precisam ser salvos $s-$s7 6-23 Salvos por uma função chamada $t8-$t9 24-25 Mais temporários $gp 28 Apontador global $sp 29 Apontador de pilha $fp 3 Apontador de quadro $ra 3 Endereço de retorno Organização de Computadores 3 :: Unidade lógica e aritmética (ALU) Responsável pela execução (em binário) das seguintes operações: Aritméticas Lógicas (AND, OR, NOT, XOR) A operação a ser realizada depende do código de operação buscado na memória principal. Organização de Computadores 4 :: Contador de programa (PC) Éum registrador que éinicializado pelo sistema operacional com o endereço da primeira instrução do programa armazenado na memória. Todas as instruções têm 32 bits de tamanho. Após uma instrução ser buscada na memória e armazenada no IR, o PC éincrementado em quatro bytes, de forma que o CPU teráo endereço da próxima instrução a ser executada. :: Memória Pode ser vista como um grande arranjo de células: onde informações são armazenadas (store). de onde informações são buscadas (load). Tais operações são realizadas sobre uma palavra por vez. A arquitetura MIPS define palavras de 4 bytes de tamanho. A menor unidade de endereçamento éum byte. Organização de Computadores 5 Organização de Computadores 6

:: Registrador de instrução (IR) Éum registrador de 32 bits que possui uma cópia da mais recente instrução buscada na memória. A depender do código contido no IR, a unidade de controle determinaráqual a operação a ser realizada. Conceito de programa armazenado Criado por John Von Neumann em 942 (também: Arquitetura-von-Neumann ). Instruções são codificadas em bits. add $7, $8, $9 Programas são armazenados na memória. Instruções são lidas e escritas da memória assim como os dados que serão transformados (processados). Ciclo de busca e execução da instrução (simplificado):. Instruções são lidas da memória e carregadas no registrador RI. 2. Os bits da instrução guardada no registrador RI são decodificados e controlam as ações subsequentes. 3. A instrução éexecutada e o endereço para a leitura da próxima instrução é calculado. Organização de Computadores 7 Organização de Computadores 8 Conceito de programa armazenado Arquitetura Harvard Instruções e dados em memórias separadas. Acesso de instruções independente do acesso de dados acesso concorrente (ao mesmo tempo). Havard vs. Programa armazenado Instruções Básicas Organização de Computadores 9 Organização de Computadores 2

Linguagem de Montagem (Assembly) Todas as instruções aritméticas e lógicas possuem três operandos. A ordem dos operandos é fixa (destino primeiro). [label:] Op-Code [operando], [operando], [operando] [#comentário] Sintaxe de instruções assembly: Label: opcional, identifica bloco do programa Código de operação: indicado por um mnemônico Operandos: Registradores ou memória Comentários: opcional, tudo que vem depois do # Linguagem de Montagem (Assembly) :: Exemplo Some bcom ce coloque o resultado em a. de linguagem de montagem: add $s, $s, $s2 Equivalente ao comando em linguagem C: a = b + c Organização de Computadores 2 Organização de Computadores 22 Linguagem de Montagem (Assembly) Em assembly, estamos manipulando registradores do MIPS. Em código C (sem compilação), estamos manipulando posições da memória. º Princípio de projeto MIPS Simplicidade favorece regularidade. Mais que três operandospor instrução exigiria um projeto de hardware mais complicado. Código C: A = B + C + D; E = F A; A associação entre posições da memória e registradores é realizada pelo compilador C. Código MIPS: add $t, $s, $s2 #t = s + s2 add $t, $t, $s3 #t = t + s3 sub $s, $s4, $t #s = s4 t Organização de Computadores 23 Organização de Computadores 24

2º Princípio de projeto MIPS Menor significa mais rápido. Uma quantidade maior que 32 registradores exigiria: um ciclo de clockmaior. formato de instruções maior, para comportar mais bits de endereçamento. :: Armazenamento na memória Operações lógicas e aritméticas sóocorrem entre registradores. Portanto, instruções para transferir dados entre a memória e os registradores são necessárias, antes da execução de tais operações. endereça bytes individuais. Assim, endereços de palavras consecutivas diferem em 4 bytes. Organização de Computadores 25 Organização de Computadores 26 :: Armazenamento na memória O espaço de endereçamento de memória do MIPS éde 2 32 bytes (endereço de 32 bits): :: Armazenamento na memória MIPS exige que todas as palavras comecem em endereços que são múltiplos de 4 bytes. Alinhamento:objetos devem estar em um endereço que éum múltiplo do seu tamanho. Organização de Computadores 27 Organização de Computadores 28

:: Armazenamento na memória Hádois sistemas para numeração dos bytes dentro uma palavra. Big endian byte mais àesquerda marca endereço da palavra. Littleendian byte mais àdireita marca endereço da palavra. :: Armazenamento na memória Big endian Byte mais àesquerda marca endereço da palavra. Littleendian Byte mais àdireita marca endereço da palavra. Exemplo: palavra = 65CE94 h, endereço = F4 h ) Big Endian: 2) Little Endian: Organização de Computadores 29 Organização de Computadores 3 :: Armazenamento na memória Big Endian: IBM 36/37, Motorola 68k, MIPS, Sparc, HP PA Little Endian: Intel 8x86, DEC Vax, DEC Alpha(Windows NT) Nomeação baseado em um artigo publicado em 98: citação do problema e relacionando-o a um episódio mencionado no livro As Viagens de Gulliver povo que foi àguerra para decidir qual a melhor maneira de quebrar ovos, se pelo maior (big) lado ou se pelo menor (little) lado. Organização de Computadores 3 :: Armazenamento na memória Big Endian vs. Little Endian mais fácil de determinar o sinal do número. mais fácil de comparar dois números. mais fácil de fazer a divisão. mais fácil de imprimir. adição e multiplicação dos números de multiprecisão é mais fácil. Organização de Computadores 32

Transferência de Dados Lógicas Controle Suporte a procedimentos Banco de Registradores Memória Organização de Computadores 33 Organização de Computadores 34 Copiar dados de para Memória Registrador Registrador Memória load word(lw) store word(sw) load word(lw) Formato: lw $t,8($s3) instrução registrador de destino Registrador base, que armazena o endereço base offset (em bytes) Organização de Computadores 35 Organização de Computadores 36

load word(lw) store word(sw) Organização de Computadores 37 Organização de Computadores 38 Exemplo Suponha que o valor da variável hesteja armazenado em $s2e que o endereço base da matriz A esteja armazenado em $s3. Qual o código assemblypara: A[2] = h + A[8]? Exemplo 2 Suponha que o endereço base da matriz B esteja armazenado em $s4. Qual o código assemblypara trocar os valores do B[] e do B[]? lw $t, 32($s3) # $t A[8] add $t, $s2, $t # $t $s2 + A[8] sw $t, 48($s3) # A[2] h + A[8] lw $t, 4($s4) lw $t, 44($s4) sw $t, 44($s4) sw $t, 4($s4) # $t B[] # $t B[] # B[] B[] # B[] B[] Organização de Computadores 39 Organização de Computadores 4

load upper immediate(lui) Representando instruções no Instruções do programa assemblydevem ser traduzidas em números binários para que a máquina as execute. Dessa forma, cada instrução e cada registrador devem ser mapeados segundo um código e dispostos segundo um dos seguintes formatos: Formato registrador (R) Formato imediato (I) Formato de jump(j) Organização de Computadores 4 Organização de Computadores 42 Representando instruções no Formato registrador (R) Op-code:sempre zeropara o formato R. Rs: registrador do primeiro operando de origem. Rt: registrador do segundo operando de origem. Rd:registrador que recebe o resultado da operação (destino). Shamt:quantidade de deslocamento (shiftamount). Será abordado mais tarde. Functioncode:especificaqual a operação a ser Op-Code executada. Rs sssss Rt ttttt Rd ddddd Shamt Function Code ffffff Representando instruções no Formato imediato (I) Op-code: especifica qual operação a ser executada. Rs: registrador do operando de origem. Rt:registrador que recebe o resultado da operação (destino). Immediate:endereço de memória ou constante numérica. Op-Code ffffff Rs sssss Rt ttttt Immediate iiiiiiiiiiiiiiii Organização de Computadores 43 Organização de Computadores 44

Representando instruções no Representando instruções no Formato jump(j) Op-code: especifica qual operação a ser executada. Target:local da memória a saltar, onde estão as próximas instruções a serem executadas. Exemplos add $t, $s, $s2 op rs rt 6 bits 5 bits 5 bits add $s $s2 rd 5 bits $t shamt 5 bits -- funct 6 bits add Op-Code f Target tttttttttttttttttttttttttt (decimal) add 7 $s 8 $s2 8 $t -- (2) h add (binário) Organização de Computadores 45 Organização de Computadores 46 Representando instruções no Representando instruções no Exemplos Exemplos lw $t, 32($s2) op rs rt 6 bits 5 bits 5 bits lw $s2 $t immediate 6 bits offset sw $t, 32($s2) op rs rt 6 bits 5 bits 5 bits sw $s2 $t immediate 6 bits offset (decimal) (23) h 8 8 32 lw $s2 $t offset (decimal) (2B) h sw 8 $s2 8 $t 32 offset (binário) (binário) Organização de Computadores 47 Organização de Computadores 48

Representando instruções no Constantes :: Instruções imediatas Exemplos (decimal) (binário) lui $t, 23 op 6 bits lui (F) h lui rs 5 bits -- -- rt 5 bits $t 8 $t immediate 6 bits immediate 23 offset Constantes são utilizadas com frequência em operações. Nesse caso, incluir constantes em uma instrução agiliza as operações, em vez de carregar as constantes a partir da memória. Tais instruções são conhecidas como instruções imediatas. Organização de Computadores 49 Organização de Computadores 5 Constantes :: Instruções imediatas Exemplo: Adição imediata (addi) (decimal) (binário) addi $s3, $s2, 4 # $s3 $s2 + 4 op 8 addi addi rs 8 $s2 $s2 rt 9 $s3 $s3 immediate Organização de Computadores 5 4 constante constante Constantes grandes Como carregar constantes de 32 bits em um registrador? Duas instruções são necessárias: lui(loadupperimmediate) para carregar bits mais significativos. ori(orimmediate) para carregar bits menos significativos. Organização de Computadores 52

Constantes grandes Exemplo: deseja-se carregar o registrador $t com o endereço de memória x4b3c. lui $t, x4b ori $t, $t, x3c 4 4 b b 3 c Questões Converta o código em C seguinte para o código assembly usando o conjunto de instruções MIPS. // Suponha que os valores das variáveis x, ye z estejam armazenados em $s2, $s3 e $s4e que o endereço base da matriz B esteja armazenada em $s6. main() { int x, y, z; int B[2]; B[] = x; y = B[2] + B[3]; } sw$s2, ($s6) # B[] = x lw$t, 8($s6) # t = B[2] lw$t, 2($s6) # t = B[3] add$s3,$t,$t # y = t+t Organização de Computadores 53 Organização de Computadores 54 Questões Converta o código assemblypara o código de máquina usando estas tabelas. Nome Número $zero $v $v 2-3 $a $a3 4-7 $t $t7 8-5 $s $s7 6-23 $t8 $t9 24-25 Nome Adição Carrega word Armazena word Sintaxe add$s, $2, $3 lw $t,c($s) sw $t,c($s) Função $ = $2 + $3 (signed) $t = Memória[$s + C] Memória[$s + C] = $t Formato/Opcode/ funct R I I 23 hex 2B hex 2 hex - - sw $s2, ($s6) lw $t, 8($s6) lw $t, 2($s6) add $s2,$t,$t Organização de Computadores 55