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

Documentos relacionados
datapath adrt adrd uins.i ext_sinal ext_0

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

Disciplina: Organização de Computadores-EC 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';

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

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

Número de Linha. Código objeto

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

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

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

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

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

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

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

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

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

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

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

SSC0114 Arquitetura de Computadores

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

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

SSC0611 Arquitetura de Computadores

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.

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

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

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

ção de Computadores II

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.

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

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

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

Implementação Multi-Ciclo

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

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

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

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

Organização de Computadores

Questionário Arquitetura e Organização de Computadores

Especificação do Projeto de Processador RISC

ARQUITECTURA DE COMPUTADORES

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

Conjunto de Instruções MIPS Parte IV

Infra-estrutura de Hardware

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

Infraestrutura de Hardware. Instruindo um Computador

Arquitetura de Computadores. Linguagem de Máquina

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

Arquitetura de Computadores

ELE Microprocessadores I

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

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

MIPS_Monociclo. instruction instr add AdWP. wreg instruction. Memória de

Relembrando desempenho...

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

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 é

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

Relembrando desempenho...

MIPS ISA (Instruction Set Architecture)

TCC Organização de Computadores I Turma :A1 Lista 3-GABARITO. 1. A figura abaixo mostra o diagrama da implementação para a UCP estudada em sala.

Organização e Arquitetura de Computadores I

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

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

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

Escreva um programa em código assembly correspondente ao seguinte programa C.

Processador. Processador

Universidade de São Paulo

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

PROCESSADOR MULTI-CICLO MR2

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

Sistemas de Computação Gabarito - Lista 2

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

MODOS DE ENDEREÇAMENTO

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

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

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

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Arquiteturas de Computadores

UCP: Construindo um Caminho de Dados (Parte I)

Organização e Arquitetura de Computadores I

Organização ou MicroArquitectura

Símbolos e abreviaturas utilizadas na descrição das instruções

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

PROCESSADOR MULTI-CICLO MR3

Faculdade de Computação

Introdução da memória de programa

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

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

SSC510 Arquitetura de Computadores 1ª AULA

Arquitetura de Computadores MIPS

Organização de Unidades de Processamento

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

Conjunto de Instruções MIPS Parte I

Microcontroladores e Interfaces

Arquitectura de Computadores (ACom)

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

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

Transcrição:

Prova P2 isciplina: Organização Computadores Professor: Ney aert Vilar Calazans luno: 12/junho/2013 Para realizar a prova, refiram-se às propostas organização MIPS monociclo e multiciclo vistas em aula. O senho da versão monociclo apare abaixo, com talhamento do Bloco ados. O Bloco ados da versão multiciclo encontra-se no verso. ssuma que as instruções às quais a organização monociclo dá suporte execução são apenas as seguintes (exto se a questão particular especificar outra forma):, SB, N, OR, XOR, NOR, W, SW e ORI. control_unit IR_out path reg_st MIPS_V0 incpc +4 rst pc i_ uins 15..0 R adrs adrt adrd wreg rst ext_sinal ext32 d_ zero uins.bw ados ext_0 1. [3,0 pontos] ssuma que a organização MIPS monociclo estudada em aula na versão expandida, com suporte para as instruções I e BE, é usada aqui, mas que esta foi adicionalmente modificada para permitir executar também as instruções SH e SB (ignore a instrução syscall). O programa dado abaixo é um teste execução, ializado para comparar o efeito das instruções SW, SH e SB. s posições memória position1 e position2 corresponm respectivamente às duas primeiras posições da área dados mostrada (iniciando no enreço 0x10010000) em uma máquina com organização little endian. iga exatamente quais enreços da memória dados serão alterados na execução do programa e diga que valor é escrito em cada enreço específico (não se esqueça que no MIPS a memória dados é organizada a byte, ou seja, em cada enreço memória resi apenas 1 byte informação, on 1 byte=8 bits). 2. main: li $t0,0xbfae9d8c 3. li $t1,0x7c6b5a49 4. li $t2,0x38271605 5. la $t3,position1 6. la $t4,position2 7. sw $t0,0($t3) 8. sb $t1,0($t4) 9. sh $t2,2($t4) 10. li $v0,10 11. syscall 12. 13.. 14. position1:.word 0 15. position2:.word 0 2. [4 pontos] ssuna uma frequência operação 400 MHz para o prossador MIPS monociclo e que a organização original foi alterada para dar suporte a executar todas as instruções do programa abaixo, mantendo a característica monociclo. Calcule: a) (1,5 pontos) O número ciclos relógio que leva p/ executar o programa, com a área dados fornecida; b) (1 ponto) O tempo execução do programa em segundos (1ns=10-9 segundos); c) (1 ponto) O que faz este programa, do ponto vista semântico; d) (0,5 pontos) Este programa possui subrotinas? Se sim, on esta se encontra (fina linhas)?

2..globl main 3. main: la $a0,lt 4. lb $a0,0($a0) 5. jal cl 6. addu $a0,$zero,$v0 7. li $v0,10 8. syscall 9. cl: addu $v0,$zero,$zero 10. la $s0,d 11. w: lb $t1,0($s0) 12. beq $t1,$zero,fc 13. bne $t1,$a0,na 14. addiu $v0,$v0,1 15. na: addiu $s0,$s0,1 16. j w 17. fc: jr $ra 18.. 19. d:.asciiz "Minha mãe mandou!!!" 20. lt:.ascii "m" Bloco ados da organização MIPS Multiciclo. a que esta organização dá suporte:, SB, N, OR, XOR, NOR, S, SV, SR, SRV, SR, SRV, I, NI, ORI, XORI, I, B, W, SB, SW, ST, ST, STI, STI, BE, BGEZ, BEZ, BNE, J, J, JR, JR. dtpc M1 uins.wpc 4 + pc=i_ inc_pc N IR IR=IR_OT 25...0 M3 11111 M4 M2 ads ad 0-extend s-extend s-extend*4 0000 & IR[25:0] & 00 RIN R drs R RS drt R BREG M6 dr RT clo wreg M7 M5 cte_im IME IME M7 op1 op2 R C o m p outalu salta R uins.walu R=d_ ados M8 x 000000 & [7:0] 3. [3,0 pontos] Consire o bloco dados multiciclo apresentado acima, e consire o módulo que gera a entrada do registrador nominado IME na figura. iga sobre este bloco: a) (1 ponto) Ele é similar a módulo em posição análoga no bloco dados monociclo, mas possui quatro partes distintas (0-extend, s-extend, s-extend*4 e "0000"&IR[25:0]&"00") que geram valores possíveis entrada para o registrador IME. Explique para que serve cada uma das quatro partes, diferenciando-as. b) (2 pontos) Para cada uma das 33 instruções que a organização MIPS é capaz executar, diga quais usam cada uma das quatro partes e quais (se existirem) não usam nenhuma das partes. R MR_int MR uins.wmdr MR M9

Gabarito Para realizar a prova, refiram-se as propostas organização MIPS monociclo e multiciclo vistas em aula. O senho da versão monociclo apare abaixo, com talhamento do Bloco ados. O Bloco ados da versão multiciclo encontra-se no verso. ssuma que as instruções às quais a organização monociclo dá suporte execução são apenas as seguintes, exto se a questão particular especificar outra forma:, SB, N, OR, XOR, NOR, W, SW e ORI. MIPS_V0 incpc +4 rst pc control_unit i_ IR_out uins 15..0 path adrs adrt adrd ext_sinal ext_0 R rst wreg ext32 reg_st d_ zero uins.bw ados 1. [3,0 pontos] ssuma que a organização MIPS monociclo estudada em aula na versão expandida, com suporte para as instruções I e BE, é usada aqui, mas que esta foi adicionalmente modificada para permitir executar também as instruções SH e SB (ignore a instrução syscall). O programa dado abaixo é um teste execução, ializado para comparar o efeito das instruções SW, SH e SB. s posições memória position1 e position2 corresponm respectivamente às duas primeiras posições da área dados mostrada (iniciando no enreço 0x10010000) em uma máquina com organização little endian. iga exatamente quais enreços da memória dados serão alterados na execução do programa e diga que valor é escrito em cada enreço específico (não se esqueça que no MIPS a memória dados é organizada a byte, ou seja, em cada enreço memória resi apenas 1 byte informação, on 1 byte=8 bits). 2. main: li $t0,0xbfae9d8c 3. li $t1,0x7c6b5a49 4. li $t2,0x38271605 5. la $t3,position1 6. la $t4,position2 7. sw $t0,0($t3) 8. sb $t1,0($t4) 9. sh $t2,2($t4) 10. li $v0,10 11. syscall 12. 13.. 14. position1:.word 0 15. position2:.word 0 Solução: Como existe no trecho programa apenas uma instrução SW (Store Word), uma instrução SH (Store Half Word) e uma instrução SB (Store Byte), e não há laços no programa, serão escritos exatamente sete bytes na memória. SW escreverá uma palavra (4 bytes) nos enreços 0x10010000 a 10010003, a SH escreverá nos enreços 10010006 a 1001007, e a SB escreverá somente um byte, no enreço 10010004, perfazendo um total 7 bytes escritos na memória. Os conteúdos escritos serão (lembrando que se assume uma organização little endian: 10010000 0x8C (sw SB) 10010001 0x9 (sw) 10010002 0xE (sw) 10010003 0xBF (sw MSB) 10010004 0x49 (sb) 10010006 0x05 (sh SB) 10010007 0x16 (sh MSB)

2. [4 pontos] ssuna uma frequência operação 400 MHz para o prossador MIPS monociclo e que a organização original foi alterada para dar suporte a executar todas as instruções do programa abaixo, mantendo a característica monociclo. Calcule: a) (1,5 pontos) O número ciclos relógio que leva p/ executar o programa, com a área dados fornecida; b) (1 ponto) O tempo execução do programa em segundos (1ns=10-9 segundos); c) (1 ponto) O que faz este programa, do ponto vista semântico; d) (0,5 pontos) Este programa possui subrotinas? Se sim, on esta se encontra (fina linhas)? 2..globl main # 3. main: la $a0,lt # 2 ciclos Gera enreço do parâmetro (letra a procurar) 4. lb $a0,0($a0) # 1 ciclo - Carrega parâmetro em $a0 5. jal cl # 1 ciclo - Chama subrotina conta_letras 6. addu $a0,$zero,$v0 # 1 ciclo - Na volta, move número letras retornado para $a0 7. li $v0,10 # 1 ciclo - Prepara saída do programa 8. syscall # 1 ciclo - Sai do programa 9. cl: addu $v0,$zero,$zero# 1 ciclo - Início da subrotina, zera contador letras 10. la $s0,d # 2 ciclos - Gera enreço da caia caracteres 11. w: lb $t1,0($s0) # 1 ciclo - Busca próximo caracter 12. beq $t1,$zero,fc # 1 ciclo Testa fim da caia 13. bne $t1,$a0,na # 1 ciclo Se não chegou ao fim da caia, testa caracter 14. addiu $v0,$v0,1 # 1 ciclo - Se é caracter procurado, incrementa contador 15. na: addiu $s0,$s0,1 # 1 ciclo - vança ponteiro para próximo caracter 16. j w # 1 ciclo - Volta a testar fim da caia 17. fc: jr $ra # 1 ciclo - o final do tratamento da caia, apenas retorna 18.. # 19. d:.asciiz "Minha mãe mandou!!!" # caia exemplo, possui dois m s 20. lt:.ascii "m" # Caracter a procurar Solução: 2.1. (1,5 pontos) s linhas 1-2 não possuem instruções. s linhas 3-8(7 ciclos), 9-10 (3 ciclos) e 17 (1 ciclo) são executadas exatamente uma vez cada, gastando um total 11 ciclos relógio. Existe um único laço, nas linhas 11-16, e cada execução ste po gastar 5 ciclos (quando o caracter analisado é diferente do parâmetro passado), 6 ciclos (quando o caracter analisado é igual ao parâmetro passado), ou 2 ciclos (quando se chega ao caracter fim caia). O exemplo caia possui exatamente 20 caracteres (incluindo o N ao final da caia), sendo que stes, apenas dois são iguais ao parâmetro passado em $a0 para a subrotina (a letra m). ssim, com os valores dados, o laço é executado exatamente 20 vezes, sendo que em 17 vezes gasta-se 5 ciclos para executá-lo, 2 vezes gasta-se 6 ciclos e uma vez se gasta 2 ciclos. ogo o número total ciclos do programa com esta área dados é 11+17*5+2*6+2=110 ciclos relógio. 1.2. (1 ponto) m relógio 400MHz implica um período (1/(400*10 6 ))s ou 2,5ns=2,5*10-9 s. ogo o tempo execução do programa é 110*2,5*10-9 s=275*10-9 s. 1.3. (1 ponto) Este programa computa o número vezes que o caracter armazenado na posição memória lt ocorre na caia caracteres armazenada a partir da posição memória d, retornando em $a0 o valor computado. O caracter é passado via registrador $a0 para uma subrotina e d é uma variável global, assível à subrotina cl. 1.4. (0,5 pontos) O programa possui uma subrotina nominada cl, que ocupa as linhas 9-17, e que é chamada uma vez pelo programa principal. Organização Multiciclo. a que esta organização dá suporte:, SB, N, OR, XOR, NOR, S, SV, SR, SRV, SR, SRV, I, NI, ORI, XORI, I, B, W, SB, SW, ST, ST, STI, STI, BE, BGEZ, BEZ, BNE, J, J, JR, JR.

dtpc M1 uins.wpc 4 + pc=i_ inc_pc N IR IR=IR_OT 25...0 11111 M3 M4 M2 ads ad drs drt dr 0-extend s-extend s-extend*4 0000 & IR[25:0] & 00 R RIN BREG clo wreg RS RT M5 cte_im R IME IME R M6 3. [3,0 pontos] Consire o bloco dados multiciclo apresentado acima, e consire o módulo que gera a entrada do registrador nominado IME na figura. iga sobre este bloco: a) (1 ponto) Ele é similar a módulo em posição análoga no bloco dados monociclo, mas possui quatro partes distintas (0-extend, s-extend, s-extend*4 e "0000"&IR[25:0]&"00") que geram valores possíveis entrada para o registrador IME. Explique para que serve cada uma das quatro partes, diferenciando-as. b) (2 pontos) Para cada uma das 33 instruções que a organização MIPS é capaz executar, diga quais usam cada uma das quatro partes e quais (se existirem) não usam nenhuma das partes. Solução: a) s quatro partes se chamam 0-extend, s-extend, s-extend*4 e "0000"&IR[25:0]&"00". função geral stas partes é gerar um valor imediato 32 bits, a partir uma das várias formas em que dados imediatos existem (quando existem) em uma instrução. s funções cada um stes é: M7 M7 op1 op2 R C o m p outalu salta R uins.walu R=d_ ados x 000000 & [7:0] R M8 MR_int MR MR uins.wmdr M9 0-extend - Realiza a extensão 0 dos bits 15-0 do IR, ou seja acresnta 16 bits 0 à esquerda dos bits 15-0 do IR para produzir um valor 32 bits a ser carregado em IME. É usado sobretudo para instruções lógicas com dado imediato, tais como ORI, NI e XORI. s-extend - Realiza a extensão sinal dos bits 15-0 do IR, ou seja acresnta 16 bits à esquerda dos bits 15-0 do IR para produzir um valor 32 bits a ser carregado em IME Cada um dos 16 bits acresntados é uma cópia do bit 15 do IR. É usado nas instruções aritméticas com dado imediato, tais como I e I, comparação com dado imediato como STI e para cálculo do slocamento em instruções que usam o modo enreçamento base-slocamento, tal como as instruções leitura e escrita na memória dados (W, SW, B, B, SB) s-extend*4 - Similar a s-extend, mas pois realizar a extensão sinal, acresnta dois bits em 0 à direita dos 32 bits gerados e scarta os dois bits mais significativos, produzindo um valor em 32 bits que é o ado multiplicar o ado da extensão sinal pela constante 4. É usado nas instruções svio condicional tal como BE e BNE) para computar o valor a ser somado ao para obter o enreço para on saltar quando a condição for válida. "0000"&IR[25:0]&"00" - O próprio nome sta parte explica o que ela faz. Gera o valor 32 bits a partir da concatenação dos bits 25-0 do IR multiplicado por 4 (ou seja, com dois bits adicionais colocados à direita dos bits menos significativos) com 4 bits em 0. Esta parte é usada para gerar parte do enreço salto para as instruções tipo J (J e J). O enreço em si é obtido na, substituindo os 4 bits mais significativos IME pelos 4 bits mais significativos do. b) Po-se classificar as 33 instruções da MIPS multiciclo acordo com qual parte do hardware geração da entrada do IME usam: Não usam IME - ualquer instrução que não tenha nenhum dado imediato no seu código objeto. Isto inclui todas as instruções tipo R, exto as slocamento, on o campo shamt é um dado imediato. s instruções sta classe são então:, SB, N, OR, XOR, NOR, SV, SRV, SRV, ST, ST, JR e JR.

sam 0-extend - lgumas instruções tem usar esta parte, as instruções lógicas com dado imediato: NI, ORI, XORI. lgumas instruções pom usar esta parte ou a parte s-extend forma indiferente, pois nelas os bits 31-16 do imed não são usados, mas os bits 15-0 sim, mesmo que forma parcial: S, SR, SR e I; sam s-extend - s instruções que precisam usar extensão sinal são as aritméticas com dado imediato, as comparação com dado imediato e as escrita e leitura na/da memória dados, ou seja: I, STI, STI, B, W, SB, SW. lgumas instruções pom usar esta parte ou a parte 0-extend forma indiferente, pois nelas os bits 31-16 do IME não são usados, mas os bits 15-0 sim, mesmo que forma parcial: S, SR, SR e I; sam s-extend*4 - Somente usam esta parte as instruções salto condicional, ou seja: BE, BGEZ, BEZ, BNE; sam "0000"&IR[25:0]&"00" - Esta classe incui apenas as instruções tipo J que especificam nos bits 25-0 um enreço pseudo-absoluto, ou seja J e J.