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

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 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

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

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

Número de Linha. Código objeto

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 e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

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

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

66 [2] 0x x c

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

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

SSC0114 Arquitetura de Computadores

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

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

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

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

Organização de Computadores

ção de Computadores II

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

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

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

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

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

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

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

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 μ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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Organização e Arquitetura de Computadores I

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

Implementação Multi-Ciclo

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

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

Infra-estrutura de Hardware

SSC0611 Arquitetura de Computadores

Arquiteturas de Computadores

Questionário Arquitetura e Organização de Computadores

Organização de Unidades de Processamento

Relembrando desempenho...

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

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

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

Relembrando desempenho...

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

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.

Especificação do Projeto de Processador RISC

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

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

Arquitetura de Computadores

Conjunto de Instruções MIPS Parte III

Infraestrutura de Hardware. Instruindo um Computador

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

Procedimentos e Gestão de Subrotinas

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.

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 é

SSC510 Arquitetura de Computadores 1ª AULA

Conjunto de Instruções MIPS Parte IV

Procedimentos. Sistemas de Computação

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

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

Processador. Processador

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

Organização e Arquitetura de Computadores I

UCP: Construindo um Caminho de Dados (Parte I)

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

Arquiteturas de Computadores

O Processador: Via de Dados e Controle

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

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Introdução da memória de programa

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 25. Instituto de C

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

Infra-estrutura de Hardware

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

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

Tiago Alves de Oliviera

Arquitetura de Computadores Aula 10 - Processadores

ARQUITECTURA DE COMPUTADORES

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

Microcontroladores e Interfaces

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

Arquitetura de Computadores. Linguagem de Máquina

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

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

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Arquitectura de Computadores (ACom)

MODOS DE ENDEREÇAMENTO

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

Sistemas de Computação Gabarito - Lista 2

Transcrição:

Prova P2 isciplina: Organização Computadores Professor: Ney aert Vilar Calazans luno: 6/junho/212 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 o prossador 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_V incpc +4 pc i_ uins uins. 2..16 2..16 15.. R adrs adrt adrd ext_sinal ext32 d_ zero uins. uins.bw ados uins. ext_ 1. [4 pontos] Seja uma frequência operação 4 MHz para o prossador MIPS monociclo e assuma que a organização original foi alterada para dar suporte à execução todas as instruções do programa abaixo, mantendo sua característica monociclo. Calcule para o programa abaixo: a) O número ciclos que leva a execução do programa, com a área dados fornecida; b) O tempo execução do programa em s (1 s=1-6 segundos); c) iga o que faz este programa, do ponto vista semântico; d) Este programa possui subrotinas? Se sim, on esta se encontra (em que linhas)? 1.. 2. num:.word 3 3. :.word 4..text 5. main: la $t,num 6. lw $a,($t) 7. addiu $sp,$sp,-4 8. sw $ra,($sp) 9. jal func 1. lw $ra,($sp) 11. addiu $sp,$sp, 4 12. la $t, 13. sw $v,($t) 14. li $v,1 15. syscall 16. func: addiu $sp,$sp,-8 17. sw $ra,($sp) 18. sw $a,4($sp) 19. sltiu $t,$a,1 2. beq $t,$zero,rec 21. addiu $v,$zero,1 22. lw $ra,($sp) 23. addiu $sp,$sp,8 24. jr $ra 25. rec: addiu $a,$a,-1 26. jal func 27. lw $a,4($sp) 28. lw $ra,($sp) 29. addiu $sp,$sp,8 3. multu $v,$a 31. mflo $v 32. jr $ra

Organização Multiciclo. a que esta organização dá suporte:, SB, N, OR, XOR, NOR, S, SV, S, SV, 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 15... 15... 15... 25... M3 2..16 2..16 2..16 11111 M4 M2 ads ad -extend s-extend s-extend*4 IR[25:] RIN R drs RS drt BREG M6 dr RT clo M5 cte_im IME IME op1 op2 C o m p outalu salta uins.walu =d_ ados M8 x [7:] 2. [2, pontos] O código VH dado abaixo representa um dos sinais auxiliares scritos no início do Bloco ados multiciclo do MIPS, usado para tectar se uma dada instrução perten à classe instruções saltos condicionais. Consire que o sinal é codificado com o menor número possível bits, e que as instruções são codificadas com valores binários cresntes a partir, na sequência dada acima do senho do Bloco ados monociclo (ou seja, rebe código, SB rebe código 1, etc.). partir stes pressupostos, senhe um diagrama portas lógicas que poria ar da síntese sta linha do VH do prossador. se apenas portas lógicas quaisquer (inversores, portas E, O, Não-E, Não-O, etc.) e fios. ual(is) é(são) a(s) entrada(s) do circuito e qual(is) sua(s) saída(s)? uins. MR_int MR uins.wmdr MR M9 inst_branch <= '1' when =BE or =BGEZ or =BEZ or =BNE else ''; 3. [2 pontos] Consire o bloco dados monociclo apresentado na página anterior. Suponha que existe uma falha, que afeta apenas o multiplexador mais à direita no senho, que gera a entrada dados do Banco Registradores (R). falha é que este componente sempre ixa passar a sua entrada superior para a saída, inpennte do valor do sinal controle. iga quais instruções ainda pom ser executadas corretamente, justificando sua resposta. lguma instrução po ser executada forma correta às vezes e forma incorreta outras vezes? Se sim, qual instrução é esta e em que condições tais situações ocorrem? 4. [2 pontos] se a documentação do MIPS (pêndi ) e o VH da versão multiciclo para esta questão. efina a partir da funcionalida da instrução SR, do Bloco ados multiciclo e sua implementação em VH quais os caminhos do Bloco ados multiciclo realmente transportam informação relevante para executar esta instrução. Marque este caminho no senho do Bloco ados acima e marque os blocos hardware nessários a sua execução. ue operação é realizada na para esta instrução? uais condições são fixadas nos multiplexadores para executar esta instrução (use a numeração dos multiplexadores para intificá-los, se achar interessante)? iga se alguma condição algum multiplexador é irrelevante.

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 o prossador 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_V incpc +4 pc i_ uins uins. 2..16 2..16 15.. R adrs adrt adrd ext_sinal ext32 d_ zero uins. uins.bw ados uins. ext_ 1. [4 pontos] Seja uma frequência operação 4 MHz para o prossador MIPS monociclo e assuma que a organização original foi alterada para dar suporte à execução todas as instruções do programa abaixo, mantendo sua característica monociclo. Calcule para o programa abaixo: a) O número ciclos que leva a execução do programa, com a área dados fornecida; b) O tempo execução do programa em s (1 s=1-6 segundos); c) iga o que faz este programa, do ponto vista semântico; d) Este programa possui subrotinas? Se sim, on esta se encontra (em que linhas)? 1.. 2. num:.word 3 # número cujo fatorial será calculado 3. :.word # local on armazenar ado do cálculo do fatorial 4..text 5. main: la $t,num # 2 ciclos - Obtém enreço do número 6. lw $a,($t) # 1 ciclo - valor armazenado em num em $a, parâmetro entrada 7. addiu $sp,$sp,-4 # 1 ciclo - aloca 1 palavra na pilha 8. sw $ra,($sp) # 1 ciclo - guarda end retorno p/ SO na pilha 9. jal func # 1 ciclo - chama subrotina 1. lw $ra,($sp) # 1 ciclo - na volta, recupera end retorno da pilha 11. addiu $sp,$sp, 4 # 1 ciclo - saloca pilha 12. la $t, # 2 ciclos obtém enreço on guardar fatorial 13. sw $v,($t) # 1 ciclo - escreve ado fatorial em 14. li $v,1 # 1 ciclo - prepara-se para sair do programa SO 15. syscall # 1 ciclo - volta ao SO 16. func: addiu $sp,$sp,-8 # 1 ciclo - loca pilha para eventual recursão 17. sw $ra,($sp) # 1 ciclo - guarda end retorno no topo 18. sw $a,4($sp) # 1 ciclo - guarda argumento entrada abaixo do topo 19. sltiu $t,$a,1 # 1 ciclo - $t rebe 1 se argumento < 1, senão 2. beq $t,$zero,rec # 1 ciclo - vai para chamada recursiva se arg >=1 21. addiu $v,$zero,1 # 1 ciclo - senão, gera cte 1 em $v, valor retorno 22. lw $ra,($sp) # 1 ciclo - recupera end retorno da pilha 23. addiu $sp,$sp,8 # 1 ciclo - saloca pilha alocado no inicio da rotina 24. jr $ra # 1 ciclo - retorna ao programa principal 25. rec: addiu $a,$a,-1 # 1 ciclo - uando chega aqui, recursão. arg <= arg-1 26. jal func # 1 ciclo - e recorre 27. lw $a,4($sp) # 1 ciclo - Na volta da recursão, recupera arg da pilha 28. lw $ra,($sp) # 1 ciclo - recupera enreço retorno da pilha 29. addiu $sp,$sp,8 # 1 ciclo saloca pilha 3. multu $v,$a # 1 ciclo - gera ado =res recursão*arg original da chamada 31. mflo $v # 1 ciclo - recupera valor para $v da parte baixa do ado 32. jr $ra # 1 ciclo - e retorna ao programa principal

Solução: a) s linhas 5-15 são executadas exatamente uma vez, gastando 13 ciclos relógio. subrotina recursiva func tem dois tipos execução: não-folha, quando a execução implica uma chamada a ela mesma e folha, caso contrário. Cada chamada func não-folha executa uma vez as linhas 16-2 e 25-32, gastando 13 ciclos relógio. chamada folha executa as linhas 16-24, gastando 9 ciclos. Com o dado inicial 3, se executa func com este valor do dado e se realiza uma chamada recursiva passando o dado crementado uma unida. Como a folha da recursão só ocorre quando o dado for menor que 1, isto implica 3 execuções não-folha func. ogo o número total ciclos do programa com esta área dados é 13+3*13+9=61 ciclos relógio. b) m relógio 4MHz implica um período (1/(4*1 6 ))s ou 2,5ns=2,5*1-3 s. ogo o tempo execução do programa é 61*2,5*1-3 s=,1525 s. c e d) Este programa calcula o fatorial do número armazenado na posição memória num, usando a subrotina recursiva func, localizada entre as linhas 16 a 32 do programa. O ado é armazenado na posição memória. Organização Multiciclo. a que esta organização dá suporte:, SB, N, OR, XOR, NOR, S, SV, S, SV, 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 15... 15... 15... 25... M3 2..16 2..16 2..16 11111 M4 M2 ads ad -extend s-extend s-extend*4 IR[25:] RIN R drs RS drt BREG M6 dr RT clo M5 cte_im IME IME op1 op2 C o m p outalu salta uins.walu =d_ ados M8 x [7:] 2. [2, pontos] O código VH dado abaixo representa um dos sinais auxiliares scritos no início do Bloco ados multiciclo do MIPS, usado para tectar se uma dada instrução perten à classe instruções saltos condicionais. Consire que o sinal é codificado com o menor número possível bits, e que as instruções são codificadas com valores binários cresntes a partir, na sequência dada acima do senho do Bloco ados monociclo (ou seja, rebe código, SB rebe código 1, etc.). partir stes pressupostos, senhe um diagrama portas lógicas que poria ar da síntese sta linha do VH do prossador. se apenas portas lógicas quaisquer (inversores, portas E, O, Não-E, Não-O, etc.) e fios. ual(is) é(são) a(s) entrada(s) do circuito e qual(is) sua(s) saída(s)? uins. MR_int MR uins.wmdr MR M9 inst_branch <= '1' when =BE or =BGEZ or =BEZ or =BNE else ''; Solução: sando os pressupostos da questão, e notando que existem 33 instruções que vem ser intificadas pelo sinal, perbe-se que um mínimo 6 bits são nessários para codificar este sinal em formato binário. inda, dos pressupostos codificação po-se notar que às instruções BE, BGEZ, BEZ e BNE vem ser associados os códigos 25, 26, 27 e 28, respectivamente, o que em binário correspon a 111, 111, 1111 e 111. partir daí, po-se conber a implementação da linha VH como um circuito on portas N 6 entradas tectam cada uma das instruções, e as saídas stas pom ser combinadas através uma porta O 4 entradas para gerar a saída inst_branch. O senho abaixo mostra o circuito ante. o senho nota-se que o circuito possui como entrada os seis bits do sinal (5 downto ) e como única saída o sinal inst_branch. Note-se que o circuito mostrado ainda poria ser simplificado. sem um mapa Karnaugh, por exemplo.

(5) (3) (1) (4) (2) () =BE BE =25 = 111 BGEZ =26 = 111 BEZ =27 = 1111 BNE =28 = 111 =BGEZ inst_branch =BEZ =BNE 3. [2 pontos] Consire o bloco dados monociclo apresentado na página anterior. Suponha que existe uma falha, que afeta apenas o multiplexador mais à direita no senho, que gera a entrada dados do Banco Registradores (R). falha é que este componente sempre ixa passar a sua entrada superior para a saída, inpennte do valor do sinal controle. iga quais instruções ainda pom ser executadas corretamente, justificando sua resposta. lguma instrução po ser executada forma correta às vezes e forma incorreta outras vezes? Se sim, qual instrução é esta e em que condições tais situações ocorrem? Solução: s únicas instruções que pom ser afetadas são as que fazem asso à memória. Mais ainda apenas as que leem dado da memória, pois a escrita não passa pelo multiplexador com falha. ogo, todas as instruções pom ser executadas sem nenhuma falha, exto a instrução W. única possibilida a falha ser mascarada seria no caso em que o enreço da memória ao qual se quer fazer asso conter um dado exatamente igual ao enreço on ele está armazenada, um fato bastante incomum. 4. [2 pontos] se a documentação do MIPS (pêndi ) e o VH da versão multiciclo para esta questão. efina a partir da funcionalida da instrução SR, do Bloco ados multiciclo e sua implementação em VH quais os caminhos do Bloco ados multiciclo realmente transportam informação relevante para executar esta instrução. Marque este caminho no senho do Bloco ados acima e marque os blocos hardware nessários a sua execução. ue operação é realizada na para esta instrução? uais condições são fixadas nos multiplexadores para executar esta instrução (use a numeração dos multiplexadores para intificá-los, se achar interessante)? iga se alguma condição algum multiplexador é irrelevante. Solução: primeira parte da questão está resolvida na figura abaixo que coloca em relevância (usando linhas vermelhas) os caminhos que realmente transportam informação relevante para executar a instrução. No senho, se nota que o único multiplexador irrelevante para esta instrução e o M8, pois por ele não passa nenhuma informação relevante. Todos os mais são usados para transportar informação útil.

cte_im MR_int IR=IR_OT ad outalu ads =d_ neste caso rebe dois operandos: em op1 vem o conteúdo do registrador RT do formato da instrução (aquele enreçado pelos bits 2-16 do IR, quando este contém o código objeto uma instrução SR); em op2 vem o valor ante da extensão sinal dos bits 15- do IR. estes 32 bits, os únicos relevantes são os bits 6-1, que contém o valor do campo shamt da instrução SR (shamt significa shift amount ou quantida slocamento, um valor entre e 31). usa estes 5 bits e sloca o valor na entrada op1 tantos bits para a direita quanto seja o valor nos bits 6-1 op2, inserindo zeros à esquerda. Por exemplo, se op1=11 11 1111 11 11 111 11 e op2= 1 11 1, o ado na saída da será opula=1 11 11 111 1 1 111 111. Ou seja, o valor op1 foi slocado 3 bits para a direita, entrando 3 zeros à esquerda e os TRE bits menos significativos op1 sendo perdidos. O valor do slocamento riva do fato os bits 1-6 op2 serem 11, ou seja 3 em cimal. dtpc M1 uins.wpc 4 + pc=i_ inc_pc N IR 15... 15... M3 2..16 15... 25... 2..16 2..16 11111 M4 M2 R drs drt dr -extend s-extend s-extend*4 IR[25:] clo RIN BREG RS RT M5 M6 IME IME op1 op2 C o m p salta uins.walu ados M8 x [7:] uins. MR uins.wmdr MR M9