Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


2ª Lista de Exercício - Microprocessadores, Exercícios de Engenharia Elétrica

Exercícios sobre microprocessadores

Tipologia: Exercícios

2012

Compartilhado em 02/08/2012

eduardo-oliveira-k4z
eduardo-oliveira-k4z 🇧🇷

4.1

(18)

38 documentos

1 / 6

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade de Pernambuco
Escola Politécnica de Pernambuco
Graduação em Engenharia Elétrica
2ª LISTA DE EXERCÍCIOS
Microprocessadores
Aluno: Eduardo César Ferreira de Oliveira Mat: 0322612
Turma: AB Prof.: Alexandre Branco
Recife - 2007
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe 2ª Lista de Exercício - Microprocessadores e outras Exercícios em PDF para Engenharia Elétrica, somente na Docsity!

Universidade de Pernambuco Escola Politécnica de Pernambuco Graduação em Engenharia Elétrica

2ª LISTA DE EXERCÍCIOS

Microprocessadores

Aluno: Eduardo César Ferreira de Oliveira Mat: 0322612 Turma: AB Prof.: Alexandre Branco

Recife - 2007

2ª LISTA DE EXERCÍCIOS

Livro: D. A. Patterson & J. L. Hennessy. Organização e Projeto de Computadores: A interface hardware/software. Ed. LTC. Rio de Janeiro. Questões: Cap. 2) 2.10, 2.11, 2.12, 2.15 e 2. Cap .4) 4.10, 4.11, 4.12, 4.13, 4.16, 4.17, 4.18, 4.20, 4.21, 4.23 e 4.31.

CAPÍTULO 2

M1 F 0E 8 Freq. Clock = 500MHZ CPIa=1, CPIb=2, CPIc=3 e CPId= M2 F 0E 8 Freq. Clock = 750MHZ CPIa=2, CPIb=2, CPIc=4 e CPId= Performance de pico F 0E 8 Maior taxa para executar as seqüências de instruções Maior Performance F 0E 8 Maior Freq. Clock e/ou menor CPI Instrução = 1 Como a instrução = 1 para M1 e M2, o MIPS é fator de performance.

Para M1 F 0E 8 Freq. Clock = 500MHz , Classe de Instrução A, CPI = 1 Para M2 F 0E 8 Freq. Clock = 750MHz , Classe de Instrução A e B, CPI = 2

Cada classe de instrução tem o mesmo número de instruções I

Freqclock = 1000MHz Programa P Ciclos MFP Ciclos MNFP Multiplicação PF 10% 6 2

Soma PF 15% 4 2

Divisão PF 5% 20 2

Instrução inteira 70% 2 2

CAPÍTULO 4

addu $t2, $zero, $t3 #copia $t3 para $t bgez $t3, fim #se $t3 0, termina e $t2 = $t sub $t2, $zero, $t3 #$t2 = - $t

Transformar os múltiplos de 6 de decimal para binário 6: 0000 0110 12: 0000 1100 18: 0001 0010 24: 0001 1000 30: 0001 1110 (Harry está errado, 4 1´s) 36: 0010 0100 42: 0010 1010 (David está errado, número ímpares de 1´s)

4.12) .data mask:.word 0xfffff83f # Máscara. O equivalente binário a este número é 1111 1111 1111 1111 1111 1000 0011 1111(2)

. text start: lw $t0, mask # Armazena em #$t0 o valor binário da máscara lw $s0, shifter # Armazena em #$s0 o código referente à instrução sll que está no label shifter. and $s0, $s0, $t0 # Executa o mascaramento da instrução, ou seja, limpa o conteúdo da informação de shamt andi $a2, $s2, 0x1f # Limpa o conteúdo do registrador $s2 a partir do sexto bit. sll $s2, $s2, 6 # Move 6 bits o conteúdo dos primeiros 5 bits de$s2 para ficar na mesma posição do shamt. or $s0, $s0, $s2 # Adiciona a $s0 a informação de shamt, copiando de $s sw $s0, shifter # Altera o valor da instrução localizada no label shifter shifter:sll $s0, $s1, 0 # Executa a instrução que foi modificada anteriormente Este trecho de código é um exemplo de alteração dinâmica de código. O algoritmo utiliza uma máscara para limpar o conteúdo da linha de

código referente ao label “shifter”, limpando a informação de quantos bits irá ser deslocado. Logo após, limpa a informação de $a desnecessária, deixando só os primeiros 5 bits. Rotaciona essa informação para encaixar perfeitamente com o código da instrução rll no campo shamt e após isso modifica a linha de código utilizando o “sw”. Essa prática não é aconselhada e até mesmo autorizada em algumas arquiteturas devido a complexidade de depuração de problemas, visto que o código passa a ser modificado dinamicamente. Se houver algum erro nessa manipulação pode ser danificada toda a estrutura do código.

4.13) O problema é que A_lower extenderá o sinal ao ser somado com $t0. A solução é ajustar A_upper adicionando 1 se o bit mais significativo de A_lower for 1.

4.16)

gcc(lw) = 21% Serão 15% de 21% das instruções lw no MIPS F 0 E 8 0,15 x 0,21 = 0,^ F 0 E 8 3,15%

4.17) addu $t2, $t3, $t sltu $t2, $t2, $t

4.18) Com overflow

addu $t3, $t5, $t sltu $t2, $t3, $t addu $t2, $t2, $t addu $t2, $t2, $t

Sem overflow

addu $t3, $t5, $t sltu $t2, $t3, $t add $t2, $t2, $t add $t2, $t2, $t

O nome dessa estrutura seria srop ( shift right one place ) – Deslocar para a direita apenas uma posção. Essa instrução trata os dois registradores como um único número de 4 bits, onde o $s1 seria a parte menos significativa e o $s0 a parte mais