Buscar

Exercícios sobre processador MIPS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

LISTA 02:
1. Faça a tradução dos seguintes códigos abaixo para instruções de máquina 
(assembly):
A)a = a + a
add $a, $a, $a
B)a = b – c
sub $a, $b, $c
 C)A[10]=c
sw 40($A), $c
D)if ( a != b) a = a + b
beq a, b, label
add $a, $a, $b
label exit
E)if ( a == b) a = a – b
bne a, b, label
sub $a, $a, $b
label exit
 F)a = b + C[100];
lw $t1, 400($C)
add $a, $b, $t1
2. Em relação ao endereçamento imediato, porque existe uma instrução addi mas não
uma subi?
A instrução addi permite que se faça uma soma com um valor constante. A instrução
subi não existe pois para fazer uma subtração imediata basta adicionar um constante
negativo.
3. Qual é o único conjunto de instruções que pode ser usado para ler e escrever na
memória, em uma arquitetura RISC?
São as instruções load e store, representadas em assembly por lw e sw.
4. O que é modo de endereçamento e quais os modos de endereçamento das
instruções do MIPS?
Modo de endereçamento é uma forma de alocar a memória RAM em porcões, de modo
que a CPU possa determinar qual posição de memória será utilizada por determinada
instrução. O MIPS possui cinco modos de endereçamento por deslocamento, imediato,
registrador indireto, relativo ao pc e absoluto.
5. Com relação ao subsistema de busca de instruções, explique porque precisamos de
um somador dedicado para somar o endereço do PC com a constante 4 para
calcular o endereço da próxima instrução. Porque não podemos utilizar o somador
localizado na ULA?
Devemos ter um somador dedicado para incrementar o PC, porque como no MIPS
monociclo cada instrução e executada em um único ciclo não seria possível incrementar
o PC e depois fazer uma operação no mesmo ciclo, pois só pode utilizar a ULA uma
vez por ciclo.
6. Descreva as etapas da execução de uma instrução Tipo R.
1 busca a instrução na memória e incrementa o PC;⁰
2 decodifica ela e gera os sinais de controle para o resto do bloco operativo;⁰
3 faz os cálculos na ULA;⁰
4 escreve o resultado do cálculo no registrador destino;⁰
7. Desenhe um diagrama da ULA contendo todas as entradas, saídas e sinais de
controle. Defina também o número de bits de cada linha. A seguir explique a
função de cada um.
1
 5
 4
2
3
1-Dado lido 1: possui 32 bits, recebe o valor do registrador um para efetuar a operação;
2-Dado lido 2: possui 32 bits, recebe o valor do registrador dois para efetuar a operação;
3-Controle da ULA: possui 3 bits, e determina a operação a ser realizada 
4-Resultado: possui 32bits, resultado da operação realizada pela ULA que será gravado 
no registrador destino;
5-Zero: usada para implementar desvios;
8. Desenhe um diagrama do banco de registradores contendo todas as entradas,
saídas e sinais de controle. Defina também o número de bits de cada linha. A
seguir explique a função de cada um.
1 7
2
3 6
4
 5
 ULA
Registradores
1-Registrador a ser lido 1: possui 5 bits, indica qual registrador será usado na operação 
da ULA;
2-Registrador a ser lido 2: possui 5 bits, indica qual registrador será usado na operação 
da ULA;
3-Registrador a ser escrito: possui 5 bits, indica qual registrador recebera o resultado da 
operação da ULA;
4-Dado de escrita: possui 32 bits, resultado da operação da ULA para ser escrito no 
registrador destino;
5-Escrita no registrador: possui 1bit, indica para o banco de registradores se a instrução 
que está sendo executada ira salvar dados nos registradores;
6-Dado lido 1: possui 32 bits, saída do valor do registrador um para a ULA;
7-Dado lido 2: possui 32 bits, saída do valor do registrador dois para a ULA;
9. Porque é importante na implementação MIPS que a memória de instrução e a
memória de dados sejam distintas?
Porque como a execução de uma instrução ocorre em um único ciclo no MIPS
monociclo, ele só poderá fazer acesso a esses tipos de memória uma vez, se elas fossem
unificadas o processador só conseguiria buscar ou instrução, ou dados, não conseguindo
os dois.
10. Calcule o tempo total que o seguinte código de máquina será executado no MIPS
Monociclo, sabendo que todas as instruções são executadas em um clico de relógio
e as etapas demoram: busca de instrução 4 ns, leitura do banco de registradores 1
ns, execução na ULA 2 ns, acesso à memória 4 ns e escrita no banco de
registradores 1 ns.
add $1, $2, $1=2
lw $3, 10($4)=4
sw $1, 10($4)=4
sub $3, $1, $3=2
sw $3, 11($4)=4
 Total= 12 x 5= 60ns
LISTA 3:
11. Quais as vantagens do MIPS: Multiciclo em relação ao MIPS: Monociclo?
-As instruções são divididas em etapas que são executadas cada uma em um ciclo de 
relógio;
-Cada instrução executa apenas no número de ciclos necessários;
-Os recursos de hardware podem ser reaproveitados reduzindo o custo do bloco 
operativo; 
-Possui apenas uma memória para instruções e dados;
-Apenas uma ULA dispensa somadores extras;
12. Em quantos ciclos são executadas as instruções beq, lw, sw e instruções tipo R?
-beq possui 3 ciclos;
-lw possui 5 ciclos;
-sw possui 4 ciclos;
-tipo R possui 4 ciclos;
13. Por qual motivo são necessários registradores extras na implementação do MIPS: 
Multiciclo?
Ele possui registradores extras para salvar dados que serão usados por ciclos 
posteriores, pois uma única instrução no MIPS multiciclo pode ser dividida em vários 
ciclos.
14. Por que o MIPS: Multiciclo requer um subsistema de controle mais complexo?
Ele requer um subsistema complexo pois é necessário que o subsistema de controle saiba em
que passo da Execução da instrução ele se encontra para poder gerar os sinais de Controles 
adequados para cada passo;
15. Quais são as etapas do MIPS: Pipeline e o que é feito em cada etapa?
-Busca da instrução: busca da instrução indicada pelo PC na memória.
-Decodificação da instrução: e feita a leitura do banco de registradores, são gerados os 
sinais de controle, prepara a instrução para ser executada. 
-Execução: realiza cálculos aritméticos, desvios condicionais ou incondicionais. 
-Acesso a memória: faz leitura de um endereço de memória armazenado em um 
registrador e carrega um operando direto da memória para ser processado. 
-Escrita no banco de registradores: escreve o resultado da operação da ULA no 
registrador destino.
16. Explique os conceitos de conflito de Dados e conflito de Controle.
Conflito de dados: quando a execução de uma instrução depende do resultado de outra 
que ainda está sendo executada em outro ciclo do pipeline.
Conflito de controle: quando a necessidade de tomar uma decisão com base nos 
resultados de uma instrução, enquanto outras estão sendo executadas.
17. Calcule o tempo total que o seguinte código de máquina executará no MIPS
Multiciclo e MIPS: Pipeline, sabendo que as etapas demoram: busca de instrução
2 ns, leitura do banco de registradores 1 ns, execução na ULA 2 ns, acesso à
memória 2 ns e escrita no banco de registradores 1 ns.
add $1, $2, $1=4
lw $3, 10($4) =5
sw $1, 10($4) =4
sub $3, $1, $3=4
sw $3, 11($4)=4
MIPS Multiciclo= 21x2= 42ns
MIPS Pipeline= 5x2= 10+(4x2)= 18ns

Outros materiais