datapath adrt adrd uins.i ext_sinal ext_0

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

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

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

Número de Linha. Código objeto

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

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

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

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

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

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.

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

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

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

Implementação Multi-Ciclo

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

SSC0114 Arquitetura de Computadores

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

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

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

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

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

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

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

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

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

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

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

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.

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

Questionário Arquitetura e Organização de Computadores

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

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

ção de Computadores II

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

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

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

SSC0611 Arquitetura de Computadores

Arquitetura de Computadores

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

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

Infra-estrutura de Hardware

Organização de Unidades de Processamento

UCP: Construindo um Caminho de Dados (Parte I)

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

X Y Z A B C D

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

Infra-estrutura de Hardware

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

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

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Infraestrutura de Hardware. Instruindo um Computador

Arquiteturas de Computadores

Relembrando desempenho...

ELE Microprocessadores I

Arquiteturas de Computadores

Introdução da memória de programa

Processador. Processador

Relembrando desempenho...

Neander - características

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 é

PROCESSADOR MULTI-CICLO MR2

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

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.

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

Aritmética Binária e Caminho de Dados. Aritmética Binária Caminho de Dados

Faculdade de Computação

UCP: Construindo um Caminho de Dados (Parte III)

Computador Cleópatra

PROCESSADOR MULTI-CICLO MR3

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

SSC510 Arquitetura de Computadores 1ª AULA

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

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

Organização e Arquitetura de Computadores I

Arquitetura de Computadores I

Tiago Alves de Oliviera

ARQUITECTURA DE COMPUTADORES

UM PROCESSADOR SIMPLES

COMPUTADOR. Adão de Melo Neto

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

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

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

Solução Lista de Exercícios Processadores

Procedimentos e Gestão de Subrotinas

2. A influência do tamanho da palavra

ALU. Ciclo de Relógio. de Dados. Memória. Instruções. Memória de. Máquina de Estados DIV. Decodificação M11 NPC MDR RESULT. npc=npc_out=npc.

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

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

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

Transcrição:

Prova P2 isciplina: Organização Computadores Professor: Ney aert Vilar Calazans luno: 9/novembro/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 rst pc i_ uins uins. 15.. R adrs adrt adrd wreg rst ext_sinal ext32 d_ zero uins. uins.bw ados uins. ext_ 1. [4 pontos] Seja uma frequência operação 5 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: 1.1. O número ciclos que leva a execução do programa, com a área dados fornecida; 1.2. O tempo execução do programa em segundos (1ns=1-9 segundos); 1.3. iga o que faz este programa, do ponto vista semântico; 1.4. Este programa possui subrotinas? Se sim, on esta se encontra (em que linhas)? 1..text 2..globl main 3. main: la $t,dor 4. lw $t,($t) 5. la $t1,ndo 6. lw $t1,($t1) 7. li $t2, 8. loop: subu $t1,$t1,$t 9. bltz $t1,end 1. addiu $t2,$t2,1 11. j loop 12. end: addu $t1,$t1,$t 13. la $t,q 14. sw $t2,($t) 15. la $t,r 16. sw $t1,($t) 17. li $v,1 18. syscall 19.. 2. ndo:.word 122 21. dor:.word 2 22. q:.word 23. r:.word

Bloco ados da organização MIPS 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 11111 M4 M2 ads ad -extend s-extend s-extend*4 & IR[25:] & RIN R drs RS drt BREG M6 dr RT clo wreg M7 M5 cte_im IME IME M7 op1 op2 C o m p outalu salta uins.walu =d_ ados M8 x & [7:] 2. [3, pontos] Consire o bloco dados multiciclo apresentado acima. Suponha que existe uma falha, que afeta apenas o multiplexador que gera a entrada do registrador IME. falha é que este componente sempre ixa passar a sua entrada superior (saída do bloco -extend) para a saída, inpennte do valor do sinal controle M5 (que fato correspon ao sinal ). iga: 2.1. uais instruções (ou grupos instruções) ainda pom ser executadas corretamente, justificando sua resposta. 2.2. 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? uins. MR_int MR uins.wmdr MR M9 3. [3, pontos] O código VH dado abaixo representa um dos sinais importantes para a execução saltos condicionais na organização MIPS multiciclo (instruções BE, BGEZ, BEZ e BNE). Pe-se: 3.1. esenhe a interfa externa do hardware gerado por este código. Mostre quem são as entradas e saídas e mencione o tamanho cada sinal interfa, em número fios. Se você não souber o tamanho exato algum sinal, calcule o valor mínimo para o mesmo, a partir das informações disponíveis. Isto é possível para todos os sinais. 3.2. Este código VH gera um comparador com quatro funcionalidas distintas. Escolha uma das quatro funcionalidas e dê um exemplo implementação do hardware sta em portas lógicas. Se o hardware escolhido for muito gran, apenas esbo sua estrutura e explique-a. 3.3. O programa da primeira questão sta prova usa a instrução BTZ. Como você alteraria o comparador que gera o sinal salta tratado aqui para dar suporte à instrução BTZ? Modifique o VH abaixo para realizar isto. salta <= '1' when ( (= and =BE) or (>= and =BGEZ) or (<= and =BEZ) or (/= and =BNE) ) else '';

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. MIPS_V incpc +4 rst pc control_unit i_ IR_out uins uins. 15.. path adrs adrt adrd ext_sinal ext_ R rst wreg ext32 reg_st d_ zero uins. uins.bw ados 1. [4 pontos] Seja uma frequência operação 5 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: 1.1. O número ciclos que leva a execução do programa, com a área dados fornecida; 1.2. O tempo execução do programa em segundos (1ns=1-9 segundos); 1.3. iga o que faz este programa, do ponto vista semântico; 1.4. Este programa possui subrotinas? Se sim, on esta se encontra (em que linhas)? 1..text 2..globl main # 3. main: la $t,dor # 2 ciclos Gera enreço do divisor 4. lw $t,($t) # 1 ciclo - Carrega valor do divisor em $t 5. la $t1,ndo # 2 ciclos - Gera enreço do divindo 6. lw $t1,($t1) # 1 ciclo - Carrega valor do divindo em $t1 (vira resto pois) 7. li $t2, # 1 ciclo - Inicializa $t2 com (vira quociente ao final) 8. loop: subu $t1,$t1,$t # 1 ciclo - Subtrai divisor do divindo 9. bltz $t1,end # 1 ciclo - Se chegou a negativo, fim da divisão 1. addiu $t2,$t2,1 # 1 ciclo - Senão, incrementa quociente 11. j loop # 1 ciclo - E volta para nova subtração 12. end: addu $t1,$t1,$t # 1 ciclo o fim, sfaz subtração que gerou negativo 13. la $t,q # 2 ciclos Obtém enreço do quociente 14. sw $t2,($t) # 1 ciclo - Escreve quociente na memória 15. la $t,r # 2 ciclos - Obtém enreço do resto 16. sw $t1,($t) # 1 ciclo - Escreve resto na memória 17. li $v,1 # 1 ciclo - Prepara saída do programa 18. syscall # 1 ciclo - E sai 19.. # 2. ndo:.word 122 # Valor do divindo 21. dor:.word 2 # Valor do divisor 22. q:.word # ugar para guardar o quociente da divisão 23. r:.word # ugar para guardar o resto da divisão uins.

Solução: 1.1. s linhas 1-2 não possuem instruções. s linhas 3-7(7 ciclos) e 12-18 (9 ciclos) são executadas exatamente uma vez, gastando um total 16 ciclos relógio. ma execução intermediária do laço nas linhas 8-11 gasta 4 ciclos relógio. última vez que este é executado gasta 2 ciclos apenas. O trecho antes entra no laço carrega o divisor (2) no registrador $t e o divindo (122) no registrador $t1, além inicializar o quociente em $t2 com. O laço subtrai o divisor do divindo e atualiza este último a cada execução do laço com o ado da subtração. pós cada subtração, testa-se o ado ste para ver se ele é negativo, o que constitui a condição para ixar o laço. ssim, com os valores dados, o laço é executado exatamente 7 vezes, testando os valores <12, 82, 62, 42, 22, 2, - 18(condição saída)>. ogo o número total ciclos do programa com esta área dados é 7+9+6*4+2=42 ciclos relógio. 1.2. m relógio 5MHz implica um período (1/(5*1 6 ))s ou 2ns=2*1-9 s. ogo o tempo execução do programa é 42*2*1-9 s= 84*1-9 s. 1.3. Este programa calcula o ado inteiro da divisão dois números naturais armazenados nas posições memória ndo (o divindo) e dor (o divisor), armazenando o quociente na posição memória q e o resto na posição memória r. O algoritmo usado é divisão por subtrações sussivas. 1.4. O programa não possui subrotinas, pois em nenhum ponto do mesmo se encontra uma das instruções jal ou jalr. 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... 11111 M3 M4 M2 ads ad drs drt dr -extend s-extend s-extend*4 & IR[25:] & R RIN BREG clo wreg RS RT M5 cte_im IME IME M6 2. [3, pontos] Consire o bloco dados multiciclo apresentado acima. Suponha que existe uma falha, que afeta apenas o multiplexador que gera a entrada do registrador IME. falha é que este componente sempre ixa passar a sua entrada superior (saída do bloco -extend) para a saída, inpennte do valor do sinal controle M5 (que fato correspon ao sinal ). iga: 2.1. uais instruções (ou grupos instruções) ainda pom ser executadas corretamente, justificando sua resposta. 2.2. 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? M7 M7 op1 op2 C o m p outalu salta uins.walu =d_ ados x & [7:] uins. M8 MR_int MR MR uins.wmdr M9 Solução: 2.1. Note-se que a MIPS multiciclo dá suporte a 33 instruções divididas nos grupos R, I e J. s instruções que não usam o registrador IME forma alguma são todas as instruções R que não usam slocamento como dado imediato (ou seja,, SB, N, OR, XOR, NOR, SV, SV, SRV, ST, ST) e as instruções salto sem dado imediato, JR, JR. Todas estas continuam a executar (obviamente) sem problema, pois não penm do registrador afetado pela falha. Outras instruções que penm ste registrador mas continuarão a funcionar são as que usam extensão (NI, ORI, XORI), ou as que não penm do ado da extensão nos 16 bits superiores, ou seja I, S, S e SR. s mais instruções não funcionarão mais corretamente (quais sejam: I, B, W, SB, SW, STI, STI, BE, BGEZ, BEZ, BNE, J, J), pois penm IME reber um valor diferente extensão.

2.2. que pom eventualmente funcionar e eventualmente não funcionar são aquelas que penm IME reber o ado do bloco extensão sinal (I, B, W, SB, SW, STI, STI) Elas funcionarão corretamente sempre que o dado imediato for um número não-negativo em 16 bits e funcionarão incorretamente sempre que o dado imediato for um número negativo. 3. [3, pontos] O código VH dado abaixo representa um dos sinais importantes para a execução saltos condicionais na organização MIPS multiciclo (instruções BE, BGEZ, BEZ e BNE). Pe-se: 3.1. esenhe a interfa externa do hardware gerado por este código. Mostre quem são as entradas e saídas e mencione o tamanho cada sinal interfa, em número fios. Se você não souber o tamanho exato algum sinal, calcule o valor mínimo para o mesmo, a partir das informações disponíveis. Isto é possível para todos os sinais. 3.2. Este código VH gera um comparador com quatro funcionalidas distintas. Escolha uma das quatro funcionalidas e dê um exemplo implementação do hardware sta em portas lógicas. Se o hardware escolhido for muito gran, apenas esbo sua estrutura e explique-a. 3.3. O programa da primeira questão sta prova usa a instrução BTZ. Como você alteraria o comparador que gera o sinal salta tratado aqui para dar suporte à instrução BTZ? Modifique o VH abaixo para realizar isto. salta <= '1' when ( (= and =BE) or (>= and =BGEZ) or (<= and =BEZ) or (/= and =BNE) ) else ''; Solução: 3.1. Ver senho abaixo. São duas entradas 32 bits ( e ) e uma no mínimo 6 bits () saída é o sinal salta 1 bit. (mín. 6 bits) (32 bits) salta(1 bit) (32 bits) 3.2. Note-se que a saída salta po ser gerada por uma porta lógica O 4 entradas (Já que cada comparação é exclusiva em relação às mais. Ou seja, quando uma las gera ado verdairo na comparação, todas as mais dão ado falso). Para simplificar o problema escolhe-se aqui a comparação (>= and =BGEZ), pois o primeiro teste resume-se a verificar apenas o bit mais significativo, (31) (Se este bit é, o número em rtamente é positivo). ssume-se que será representado com o número mínimo bits (6), e que os códigos binários cada instrução serão atribuídos a partir em orm cresnte, na orm citada no senho da MIPS multiciclo acima. ados estes pressupostos, o código da instrução BGEZ será 26 ou em binário 111. partir sta proposta codificação, fica fácil construir o circuito que gera 1 na sua saída quando a instrução em execução é BGEZ e é um número positivo. O circuito tecta esta situação com apenas uma porta N 7 entradas, on algumas stas estão invertidas (precisamente (31), (5), (2) e ()), conforme mostra o senho. (5) (3) (1) (4) (2) () (31) & =BGEZ BE =25 = 111 BGEZ =26 = 111 BEZ =27 = 1111 BNE =28 = 111 salta

3.3. instrução BTZ salta se um registrador passado como operando contiver um dado menor que zero. modificação do VH para dar suporte a esta nova instrução é simples, basta adicionar um teste específico, como feito abaixo: salta <= '1' when ((= and =BE) or (>= and =BGEZ) or (<= and =BEZ) or (/= and =BNE) or (< and =BTZ)) else '';