Número de Linha. Código objeto

Documentos relacionados
Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

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

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

66 [2] 0x x c

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS

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

Dicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS.

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

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

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

datapath adrt adrd uins.i ext_sinal ext_0

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

[1] $2,$0,$3 105 [2] 0x004000e8

1: 2: 2, [1] [2] 0x x3c011001

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

1. uins.ce <= '1' when i=sw or i=lw else '0'; 2. uins.rw <= '0' when i=sw else '1'; 3. uins.wreg <= '0' when i=sw else '1';

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009

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

SSC0114 Arquitetura de Computadores

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

SSC0611 Arquitetura de Computadores

Especificação do Projeto de Processador RISC

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

Implementação de um Subconjunto Multi-Ciclo do Processador MIPS

instruction uins.i add AdWP instruction Memória de ext_sinal ext_0

Relembrando desempenho...

Sistemas de Computação Gabarito - Lista 2

Organização de Computadores

Relembrando desempenho...

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 Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Exercícios resolvidos (aula de 4 de Maio) Resolução:

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

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

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

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:

Questionário Arquitetura e Organização de Computadores

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

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

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

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

Infraestrutura de Hardware. Instruindo um Computador

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

ção de Computadores II

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

Arquiteturas de Computadores

Conjunto de Instruções MIPS Parte I

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

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

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.

Solução Lista de Exercícios Processadores

Organização ou MicroArquitectura

CONJUNTO DE INSTRUÇÕES

Válido Rótulo Bloco bits 8 bits 8 bits 8 bits

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

Organização e Arquitetura de Computadores I

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

Prof. Gustavo Oliveira Cavalcanti

ção de Computadores I

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Faculdade de Computação

Conjunto de Instruções

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

Organização e Arquitetura de Computadores I

SSC510 Arquitetura de Computadores 1ª AULA

Execução detalhada de instruções

Tiago Alves de Oliviera

2. A influência do tamanho da palavra

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans MULTICICLO syscall space syscall addiu 1. .data 2.

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

Execução detalhada de instruções

Disciplina: Arquitetura de Computadores

MODOS DE ENDEREÇAMENTO

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

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

UCP: Construindo um Caminho de Dados (Parte I)

Unidade Central de Processamento UCP (CPU)

Prof. Adilson Gonzaga

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

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

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

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

Introdução à Organização de Computadores. Aula 8

Organização e Arquitetura de Computadores I

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

Organização e Arquitetura de Computadores I

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

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

Infra-estrutura de Hardware

Conjunto de Instruções e Modelos de Arquiteturas

Procedimentos. Sistemas de Computação

Transcrição:

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 25/novembro/2015 1. [3 pontos] Dado o trecho de programa em linguagem de montagem do MIPS abaixo, gere código objeto para as linhas 5, 6 e 9 dele. Come computando os endereços iniciais das instruções nestas linhas e anotando na coluna correspondente (quarta coluna da tabela). Note que o endereço inicial da linha 1 em hexadecimal é 0x00400054. Cuidado com os pressupostos de geração de código para deslocamentos em cada instrução. Número de Linha Rótulo Instrução Endereço inicial do código objeto 1 la $s2,v3 0x00400054 2 la $t2,comuns 3 lw $t2,0($t2) 4 loop3: blez $t2,endl3 5 lw $t1,0($s2) 6 beq $t0,$t1, flag 7 addiu $s2,$s2, 4 8 addiu $t2,$t2, -1 9 j loop3 10 flag: li $t9,0 Código objeto 2. (3,0 pontos) Verdadeiro ou Falso. Abaixo aparem 10 afirmativas. Marque com V as afirmativas verdadeiras e com F as falsas. Se não souber a resposta correta, deixe em branco, pois cada resposta correta vale 0,3 pontos, mas cada resposta incorreta desconta 0,2 pontos do total positivo de pontos. Não é possível que a questão produza uma nota menor do que 0 pontos. a) ( ) O prossador AT32UC3A0512 da Atmel é o mais poderoso da família de microcontroladores AVR de 32 bits. Ele possui 512 Kbytes de memória flash e 64 Kbytes de M, ambas endereçadas a byte. Logo estas memórias nessitam respectivamente de barramentos de endereços de 20 e 17 bits. b) ( ) O modo de endereçamento relativo, conforme usado no MIPS, obtém o operando de 32 bits (a somar com o registrador PC) acresntando 2 bits em 0 à direita dos bits 15 a 0 da instrução que o emprega, e agregando à esquerda 16 vezes o bit 15 da mesma instrução (extensão de sinal). c) ( ) As instruções do MIPS addi e addiu diferenciam-se por realizar somas com e sem sinal, respectivamente. A primeira usa extensão de sinal e a segunda extensão de zero para gerar o dado imediato da soma. d) ( ) Suponha que se executa a instrução xori $t0,$t0,0xffff. Assuma que antes de executar esta instrução, $t0 contém 0xAAADF003. Após executar a instrução, $t0 conterá 0xAAAD0FFC. e) ( ) O modo de endereçamento base-deslocamento no MIPS é usado em instruções de asso à memória e também em instruções aritméticas. f) ( ) O código objeto 0x18400024 corresponde a uma instrução blez que quando saltar, o faz nessariamente para uma linha do programa posterior à linha onde há o blez. g) ( ) A instrução lui $t1,0x5555 seguida da instrução ori $t1, $t1,0xaaaa, seguida da instrução xori $t1,$t1, 0xFFFF termina por deixar em $t1 uma palavra de 32 bits composta por 16 bits em 0 e 16 bits em 1, bits estes que se alternam: todo 0 é seguido e predido por um 1 e vi-versa. h) ( ) A memória do MIPS é endereçada a byte, e é possível escrever nela apenas dados de 8 ou 16 ou 32 bits usando uma única instrução do prossador. i) ( ) O texto de um artigo científico de 6 páginas é composto por 31.985 caracteres ASCII. No MIPS, este texto ocuparia 7.997 palavras em memória.

j) ( ) Se o código objeto 0x0C10003A estiver armazenado em memória a partir do endereço 0x00400058, ele corresponde a um salto para subrotina e esta inicia nessariamente em uma posição de memória anterior à posição onde se encontra a instrução de salto. 3. (4,0 pontos) Considere a organização do bloco de dados multiciclo abaixo, que acomoda a execução de um subconjunto da arquitetura do conjunto de instruções do prossador MIPS. Em seguida, responda às questões que seguem a figura. dtpc M1 D rpc Q uins.wpc 4 + pc=i_address address de Instruções incpc RNPC instruction RIR ir=ir_out RIN 25..21 RD 20..16 M3 AdRs op1 R1 M6 R1 20..16 A AdRt RS 15..11 REGS L 20..16 M4 AdRd U 11111 op2 R2 R2 RT M7 wreg M7 25..0 ads add 0-extend s-extend s-extend*4 0000 & IR[25:0] & 00 M2 uins.wreg M5 cte_im RIM IMED C o m p outalu salta LU uins.walu LU=d_address address de Dados uins. uins.bw M8 LU uins. mdr_int x 000000 & [7:0] RMDR uins.wmdr a) (1,0 pontos) Marcar no desenho acima e/ou descrever todos os caminhos do bloco de dados efetivamente usados pela instrução JALR Rd, Rs. Isto significa marcar e/ou descrever em texto todos os caminhos por onde passa informação útil relevante à execução da instrução, ou seja, os dados e/ou endereços que esta realmente nessita manipular. b) (1,0 pontos) Gere o código objeto da instrução JALR $gp, $s0. c) (1,0 pontos) Diga qual operação é executada pela unidade lógica-aritmética (ALU) no teriro ciclo de relógio de uma instrução JALR Rd, Rs, justificando sua resposta. d) (1,0 pontos) Para cada um dos sinais de controle diferente de, diga se e em que ciclo da instrução JALR $gp, $s0 ele é ativado e, caso se aplique, diga qual o seu valor em binário. MDR M9 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome Número (Decimal) Nome 0 $zero 16 $s0 1 $at 17 $s1 2 $v0 18 $s2 3 $v1 19 $s3 4 $a0 20 $s4 5 $a1 21 $s5 6 $a2 22 $s6 7 $a3 23 $s7 8 $t0 24 $t8 9 $t1 25 $t9 10 $t2 26 $k0 11 $t3 27 $k1 12 $t4 28 $gp 13 $t5 29 $sp 14 $t6 30 $fp 15 $t7 31 $ra

Prova P4/PS Aluno: Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans 25/novembro/2015 Gabarito 1. [3 pontos] Dado o trecho de programa em linguagem de montagem do MIPS abaixo, gere código objeto para as linhas 5, 6 e 7 dele. Come computando os endereços iniciais das instruções nestas linhas e anotando na coluna correspondente. Note que o endereço inicial da linha 1 em hexadecimal é 0x004000E8. Cuidado com os pressupostos de geração de código para deslocamentos em cada instrução. Número de Linha Rótulo Instrução Endereço inicial do código objeto Código objeto 1 la $s2,v3 0x00400054 2 la $t2,comuns 0x0040005C 3 lw $t2,0($t2) 0x00400064 4 loop3: blez $t2,endl3 0x00400068 5 lw $t1,0($s2) 0x0040006C 0x8E490000 6 beq $t0,$t1, flag 0x00400070 0x11090003 7 addiu $s2,$s2, 4 0x00400074 8 addiu $t2,$t2, -1 0x00400078 9 j loop3 0x0040007C 0x0810001A 10 flag: li $t9,0 0x00400080 Solução da Questão 1 a) (1,0 pontos) Linha 5: lw $t1, 0($s2). O formato da instrução lw é: lw rt, offset(rs) 0x23 rs rt offset Número de bits/campo: 6 5 5 16 O código objeto é então: 100011 (0x23 em seis bits) concatenado com o endereço do Rs no banco ($s2=18 ou 10010 em binário), concatenado com o endereço do Rt no banco, 01001 ($t1=9), concatenado com o offset (0x0000). Juntando os 32 bits (100011 10010 01001 0000 0000 0000 0000) e traduzindo-os de 4 em 4 em valores hexadecimais, obtém-se 0x8E490000, no endereço da memória de instruções 0x0040006C. b) (1,0 pontos) Linha 6: beq $t0,$t1, flag. O formato da instrução beq é: beq rs, rt, rótulo 4 rs rt offset Número de bits/campo: 6 5 5 16 O código objeto é então: 000100 (4 em seis bits) concatenado com o endereço do Rs no banco ($t0=8 ou 01000 em binário), concatenado com o endereço do Rt no banco, 01001 ($t1=9), concatenado com o offset. Segundo a definição da arquitetura, este é o valor de 16 bits que corresponde à distância, em instruções, da linha abaixo do beq até a linha do rótulo flag ou seja, 3, ou em binário 0000 0000 0000 0011. Juntando os 32 bits (000100 01000 01001 0000 0000 0000 0011) e traduzindo-os de 4 em 4 em valores hexadecimais, obtém-se 0x11090003, no endereço da memória de instruções 0x00400070. c) (1,0 pontos) Linha 7: j loop3. O formato da instrução j é: j label 2 address Número de bits/campo: 6 26 O código objeto é então: 000010 (2 em seis bits) concatenado com o pseudo-endereço. Para obter este, parte-se do endereço de memória associado ao rótulo loop3 (0x00400068), e extrai-se os quatro bits mais significativos e os dois bits menos significativos. O que sobra são os 26 bits do que constituem o pseudo-endereço. Juntando estes 32 bits (0000 1000 0001 0000 0000 0000 0001

1010) e traduzindo-os de 4 em 4 em valores hexadecimais, obtém-se 0x0810001A, no endereço da memória de instruções 0x0040007C. Fim da Solução da Questão 1 2. (3,0 pontos) Verdadeiro ou Falso. Abaixo aparem 10 afirmativas. Marque com V as afirmativas verdadeiras e com F as falsas. Se não souber a resposta correta, deixe em branco, pois cada resposta correta vale 0,3 pontos, mas cada resposta incorreta desconta 0,2 pontos do total positivo de pontos. Não é possível que a questão produza uma nota menor do que 0 pontos. a) (F) O prossador AT32UC3A0512 da Atmel é o mais poderoso da família de microcontroladores AVR de 32 bits. Ele possui 512 Kbytes de memória flash e 64 Kbytes de M, ambas endereçadas a byte. Logo estas memórias nessitam respectivamente de barramentos de endereços de 20 e 17 bits. b) (F) O modo de endereçamento relativo, conforme usado no MIPS, obtém o operando de 32 bits (a somar com o registrador PC) acresntando 2 bits em 0 à direita dos bits 15 a 0 da instrução que o emprega, e agregando à esquerda 16 vezes o bit 15 da mesma instrução (extensão de sinal). c) (F) As instruções do MIPS addi e addiu diferenciam-se por realizar somas com e sem sinal, respectivamente. A primeira usa extensão de sinal e a segunda extensão de zero para gerar o dado imediato da soma. d) (V) Suponha que se executa a instrução xori $t0,$t0,0xffff. Assuma que antes de executar esta instrução, $t0 contém 0xAAADF003. Após executar a instrução, $t0 conterá 0xAAAD0FFC. e) (F) O modo de endereçamento base-deslocamento no MIPS é usado em instruções de asso à memória e também em instruções aritméticas. f) (V) O código objeto 0x18400024 corresponde a uma instrução blez que quando saltar, o faz nessariamente para uma linha do programa posterior à linha onde há o blez. g) (V) A instrução lui $t1,0x5555 seguida da instrução ori $t1, $t1,0xaaaa, seguida da instrução xori $t1,$t1, 0xFFFF termina por deixar em $t1 uma palavra de 32 bits composta por 16 bits em 0 e 16 bits em 1, bits estes que se alternam: todo 0 é seguido e predido por um 1 e vi-versa. h) (V) A memória do MIPS é endereçada a byte, e é possível escrever nela apenas dados de 8 ou 16 ou 32 bits usando uma única instrução do prossador. i) (V) O texto de um artigo científico de 6 páginas é composto por 31.985 caracteres ASCII. No MIPS, este texto ocuparia 7.997 palavras em memória. j) (F) Se o código objeto 0x0C10003A estiver armazenado em memória a partir do endereço 0x00400058, ele corresponde a um salto para subrotina e esta inicia nessariamente em uma posição de memória anterior à posição onde se encontra a instrução de salto. Solução da Questão 2 a) (F) 512Kbytes e endereçamento a byte implicam a nessidade de log 2 (512K) linhas de endereço. Como 512=2 9, e 1K=2 10, o logaritmo de 512K é 19. O mesmo raciocínio conduz a computar log 2 (64K)=16. Logo a afirmativa é FALSA. b) (F) Ao aplicar o prodimento descrito neste item produz-se um valor de 34 bits e não 32 (bits 15-0 + 00 + 16 bits de extensão). Logo a afirmativa só pode ser FALSA. c) (F) Há dois erros nesta questão. Primeiro, as instruções não fazem somas de forma diferenciada, pois a representação em complemento de 2 garante que soma com e sem sinal não operam de forma distinta. O segundo erro é que ambas usam extensão de sinal para gerar a constante de 32 bits. Logo a afirmativa é FALSA. d) (V) A instrução xori usa extensão de 0. Logo o valor a ser operado na ULA com o conteúdo do registrador $t0 é 0x0000FFFF. Ora, dada a natureza da operação lógica XOR, este valor vai manter os 16 bits mais significativos de $t0 inalterados ( xoreados com 0) e vai inverter os 16 bits menos significativos de $t0 ( xoreados com 1), o que produzirá em $t0 o novo valor, que será: 0xAAADF00C, pois 0x0 invertido dá 0xF, 0xF invertido dá 0x0 e 0x3 invertido dá 0xC. Logo a afirmativa é VERDADEI. e) (F) O modo base deslocamento somente é usado para instruções de asso à memória. Logo a afirmativa é FALSA. f) (V) Os seis primeiros bits de 0x18400024 são 000110 ou 6 em decimal, o que segundo a Tabela A.10.2 do Apêndi A identifica a instrução blez. Logo esta parte do item está rta.

Esta instrução usa modo de endereçamento relativo e o endereço de salto será o ado de adicionar o PC ao offset da instrução (bits 15-0 do código objeto) com sinal estendido e multiplicado por 4, para gerar um valor constante de 32 bits. Como os bits 15-0 da instrução são 0x0024, a extensão produzirá 0x00000024, que multiplicado por 4 fica 0x00000090. Como este valor é positivo, somado aos valores normais do PC (em torno de 0x00400000) rtamente gera um endereço de memória maior que aquele contido no PC ao iniciar a execução da instrução. Logo o salto é para a frente, para linha do programa posterior à linha da instrução blez. Logo a afirmativa é VERDADEI. g) (V) lui gera em $t1 o valor 0x55550000. A ori deixa em $t1 0x5555AAAA. Finalmente o xori inverte os 16 bits menos significativos de $t1, gerando 0x55555555, pois o inverso de 0xA (1010 em binário) é 0x5 (0101 em binário). O padrão de 8 valores 0x5 corresponde ao valor binário de 32 bits 0101 0101 0101 0101 0101 0101 0101 0101. Logo a afirmativa é VERDADEI. h) (V) As instruções sb, sh e sw permitem escrever 1 byte, 2 bytes e 4 bytes na memória, respectivamente. Logo a afirmativa é VERDADEI. i) (V) Cada caractere ASCII ocupa exatamente 1 byte e no MIPS cada 4 bytes correspondem a uma palavra. Tomando o valor múltiplo de 4 mais próximo do tamanho do arquivo, têm-se 31.988, que dividido por 4 forne 7.997. Logo a afirmativa é VERDADEI. j) (F) Os seis primeiros bits de 0x0C10003A são 000011 ou 3 em decimal, o que segundo a Tabela A.10.2 do Apêndi A identifica a instrução jal. Logo esta parte da afirmativa é correta, pois trata-se de um salto para subrotina. O endereço onde a subrotina inicia é obtido tomando-se os 26 bits menos significativos do código objeto acresntando-se dois bits em 0 à direita destes e colocando à esquerda deste os quatro bits mais significativos do valor do PC no momento da execução da instrução. O valor do PC no momento da execução será 0x00400058 + 4, ou seja, 0x0040005C. Assim o endereço da subrotina para onde se deve saltar é 0000 & 00 0001 0000 0000 0000 0011 1010 & 00, ou seja 0x004000E8, que é posterior ao jal. Logo a afirmativa é FALSA. Fim da Solução da Questão 2 3. (4,0 pontos) Considere a organização do bloco de dados multiciclo abaixo, que acomoda a execução de um subconjunto da arquitetura do conjunto de instruções do prossador MIPS. Em seguida, responda às questões que seguem a figura. dtpc M1 D PC Q uins.wpc 4 + pc=i_address address de Instruções incpc RNPC instruction IR ir=ir_out RIN 25..21 RD 20..16 M3 AdRs op1 R1 M6 R1 D 20..16 AdRt RS A 15..11 REGS L 20..16 M4 AdRd U 11111 op2 R2 R2 RT M7 wreg M7 25..0 d ads add 0-extend s-extend s-extend*4 0000 & IR[25:0] & 00 M2 uins.wreg M5 cte_im IMED IMED C o m p outalu salta LU uins.walu LU=d_address address de Dados uins. uins.bw M8 LU uins. x 0000 00 & [7:0] mdr_int RMDR uins.wmdr a) (1,0 pontos) Marcar no desenho acima e/ou descrever todos os caminhos do bloco de dados efetivamente usados pela instrução JALR Rd, Rs. Isto significa marcar e/ou descrever em texto todos os caminhos por onde passa informação útil relevante à execução da instrução, ou seja, os dados e/ou endereços que esta realmente nessita manipular. b) (1,0 pontos) Gere o código objeto da instrução JALR $gp, $s0. MDR M9

c) (1,0 pontos) Diga qual operação é executada pela unidade lógica-aritmética (ALU) no teriro ciclo de relógio de uma instrução JALR Rd, Rs, justificando sua resposta. d) (1,0 pontos) Para cada um dos sinais de controle diferente de, diga se e em que ciclo da instrução JALR $gp, $s0 ele é ativado e, caso se aplique, diga qual o seu valor em binário. Solução da Questão 3 a) (1,0 pontos). Ver desenho. b) (1,0 pontos). JALR $gp, $s0 Formato R: seis campos de 6, 5, 5, 5, 5, 5 e 6 bits, com valores respectivos (em hexa): 0 10 0 1C 0 9. Isto convertido em binário dá: 000000 10000 00000 11100 00000 001001. Em hexadecimal o código objeto fica: 0x0200E009. c) (1,0 pontos). A operação executada na ALU é passar o que está na entrada op1 para a saída da ALU outalu. Este é o valor do registrador Rs, que contém o endereço a ser carregado em LU, e que posteriormente (no próximo ciclo) será transferido para o PC (o endereço de início da subrotina para onde JALR salta). d) (1,0 pontos). Observando os sinais da palavra de microinstrução produzida no Bloco de Controle, nota-se que existem 11 sinais além do sinal. Os sinais, se eles são ou não ativados, e o valor binário deles quando ativados são: 1. - Ativado (em 1 ) no primeiro ciclo 2. - Ativado (em 1 ) no segundo ciclo 3. uins.walu - Ativado (em 1 ) no teriro ciclo 4. uins.wmdr - Não ativado (fica em 0 ) ao longo de toda a instrução 5. uins.wpc - Ativado (em 1 ) no quarto ciclo 6. uins.wreg - Ativado (em 1 ) no quarto ciclo 7. uins.whilo - Não ativado (fica em 0 ) ao longo de toda a instrução 8. uins. - Não ativado (fica em 0 ) ao longo de toda a instrução 9. - Irrelevante, mas não ativado (fica em 1 ) ao longo de toda a instrução 10. uins.bw - Irrelevante, mas não ativado (fica em 1 ) ao longo de toda a instrução 11. uins._md - Não ativado (fica em 0 ) ao longo de toda a instrução Fim da Solução da Questão 3 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome Número (Decimal) Nome 0 $zero 16 $s0 1 $at 17 $s1 2 $v0 18 $s2 3 $v1 19 $s3 4 $a0 20 $s4 5 $a1 21 $s5 6 $a2 22 $s6 7 $a3 23 $s7 8 $t0 24 $t8 9 $t1 25 $t9 10 $t2 26 $k0 11 $t3 27 $k1 12 $t4 28 $gp 13 $t5 29 $sp 14 $t6 30 $fp 15 $t7 31 $ra