Você está na página 1de 6

1) Preencha a tabela abaixo, considerando uma operação de divisão com operandos de 4 bits.

Considere
para a execução deste exercício o algoritmo apresentado no slide 35 da aula 09. Use uma linha para
descrever cada um dos passos do algoritmo: subtração (passo 1 do algoritmo do slide 35), desloca
quociente à esquerda (passo 2a), restaura valor (passo 2b), desloca divisor à direita (passo 3). O valor
inicial do dividendo é 1111 e do divisor 0011.

Quociente Resto Divisor Descrição Número do Passo


0000 0000 1111 0011 0000 Inicialização dos valores 0
0000 1101 1111 0011 0000 Subtração (resto = resto – divisor) 1
0000 1101 1111 0011 0000 Desloca Quociente a Esquerda 2
0000 0000 1111 0011 0000 Restaura o Valor do Resto 3
0000 0000 1111 0001 1000 Desloca o Divisor a Direita 4
0000 1111 0111 0001 1000 Subtração (resto = resto – divisor) 5
0000 1111 0111 0001 1000 Desloca Quociente a Esquerda 6
0000 0000 1111 0001 1000 Restaura o Valor do Resto 7
0000 0000 1111 0000 1100 Desloca o Divisor a Direita 8
0000 0000 0011 0000 1100 Subtração (resto = resto – divisor) 9
0001 0000 0011 0000 1100 Desloca Quociente a Esquerda 10
0001 0000 0011 0000 0110 Desloca o Divisor a Direita 11
0001 1111 1101 0000 0110 Subtração (resto = resto – divisor) 12
0010 1111 1101 0000 0110 Desloca Quociente a Esquerda 13
0010 0000 0011 0000 0110 Restaura o Valor do Resto 14
0010 0000 0011 0000 0011 Desloca o Divisor a Direita 15
0010 0000 0000 0000 0011 Subtração (resto = resto – divisor) 16
0101 0000 0000 0000 0011 Desloca Quociente a Esquerda 17
0101 0000 0000 0000 0001 Desloca o Divisor a Direita 18
2) Que número decimal é representado pela palavra 1 01111101 10000000000000000000000,
considerando que esta esteja representada usando o padrão IEEE 754?

1 01111101 10000000000000000000000
Passo 1:
- (negativo) 125 = -2 + 127 1
Passo 2: -1,12*2-2
Resultado: -0,375

3) Usando o padrão IEEE 754 em precisão simples, mostre a representação do valor 0,46875.

Passo 1: 0,4687510 = 0,011112


Passo 2: 1,1112*2-2
+ (positivo) 125 = -2 + 127 111
Resultado:
0 01111101 11100000000000000000000

4) Faça as operações a seguir, convertendo os operandos para valores binários em complemento a dois
(16 bits):

a) 5 + 117
5 0000 0000 0000 0101
+
117 0000 0000 0111 0101
122 0000 0000 0111 1010

b) 15 – 5
15 0000 0000 0000 1111
+
-5 1111 1111 1111 1011
10 0000 0000 0000 1010

c) 12 – 19
12 0000 0000 0000 1100
+
-19 1111 1111 1110 1101
-7 1111 1111 1111 1001

d) -6+6
6 0000 0000 0000 0110
+
-6 1111 1111 1111 1010
0 0000 0000 0000 0000
5 e 6) Considere uma máquina MIPS de ciclo único. Nesta máquina, diferentes instruções utilizam
diferentes elementos do caminho de dados durante suas execuções. Neste cenário, considere a instrução
and $s0, $t1, $t2 e responda:

5) Quais valores os sinais de controle assumem durante a execução desta instrução?

Por essa ser uma instrução do tipo R, com Opcode 000000, os sinais de controle assumem os
seguintes valores:

RegDst 1 O número do registrador de destino (onde vai ser escrito) vem dos bits 11-15.
ALUSrc 0 Operandos vem do banco de registradores.
MemtoReg 0 O resultado da operação na ALU vai para o banco de registradores.
RegWrite 1 O resultado deve ser escrito no banco de registradores.
MemRead 0 Não há leitura na memória.
MemWrite 0 Não há escrita na memória.
Branch 0 Não é uma instrução de desvio.
ALUOp1 1
Manda o valor 10 para o controle da ALU. Campo funct deve ser observado.
ALUOp2 0

Ao receber o valor 10 o controle da ALU entende que esta é uma instrução do tipo R, e que o campo
Funct deve ser observado. O controle da ALU assume o valor 0000 que indica que se trata da instrução
“and”.

6) Durante a execução de uma instrução, eventualmente um determinado elemento do caminho de


dados pode não produzir qualquer saída, ou mesmo pode produzir uma saída que não é aproveitada.

a) Que elementos do caminho de dados produzem saídas que não são aproveitadas para a execução
desta instrução?
ALU: o Zero da ALU não é utilizado;
Extensão de Sinal (Sign-extend);
O Somador para instruções de desvio;
Deslocador a Esquerda;

b) E que elementos do caminho de dados não produzem, para esta instrução, qualquer saída?
Memória de Dados (Data memory);
7 a 10) Considere, novamente, uma máquina MIPS de ciclo único. Pretendemos analisar como as
latências de cada um dos elementos que compõem o caminho de dados afetam o tempo de ciclo de
clock, e como estes componentes são utilizados pelas instruções. Para os problemas destes exercícios,
assuma as seguintes latências para cada um dos elementos do caminho de dados:

Componente Latência (ps)


Memória de instruções 200
Somadores 70
Multiplexadores 20
ALU 90
Banco de registradores 90
Memória de dados 250
‘Unidade de controle 85
Extensor de sinal 15
Deslocador à esquerda 10

Desconsidere as latências das demais unidades funcionais. Lembre-se, adicionalmente, que algumas
operações no caminho de dados são realizadas de modo simultâneo, isto é, se sobrepõe no tempo.
Portanto, considere apenas o caminho mais longo (isto é, de maior latência) em suas respostas.

7) Qual a frequência do clock da máquina se apenas instruções do Tipo-R forem executadas? Considere
em sua resolução que elementos não necessários para a execução da instrução possuem latência zero.

Memória de Banco de Banco de


ALU Total
Instruções Registradores Registradores
Latência 200 90 90 90 470

𝐶𝑜𝑛𝑡𝑎𝑔𝑒𝑚 𝑑𝑒 𝐼𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠 × 𝐶𝑃𝐼


𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈 =
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘

Contagem de Instruções = 1
CPI = 1
1
𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈 =
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘
1
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘 =
𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈

Tempo de CPU = 470ps = 4,7 x 10-10 segundos

1
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘 =
4,7 × 10−10

𝑽𝒆𝒍𝒐𝒄𝒊𝒅𝒂𝒅𝒆 𝒅𝒆 𝒄𝒍𝒐𝒄𝒌 ≅ 𝟐, 𝟏𝟐 × 𝟏𝟎𝟗 𝑮𝒉𝒛


8) Qual a frequência do clock da máquina se apenas instruções lw forem executadas? Considere em sua
resolução que elementos não necessários para a execução da instrução possuem latência zero.
Memória de Banco de Memória de Banco de
ALU Total
Instruções Registradores Dados Registradores
Latência 200 90 90 250 90 720

𝐶𝑜𝑛𝑡𝑎𝑔𝑒𝑚 𝑑𝑒 𝐼𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠 × 𝐶𝑃𝐼


𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈 =
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘

Contagem de Instruções = 1
CPI = 1

1
𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈 =
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘
1
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘 =
𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈

Tempo de CPU = 720ps = 7,2 x 10-10 segundos

1
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘 =
7,2 × 10−10

𝑽𝒆𝒍𝒐𝒄𝒊𝒅𝒂𝒅𝒆 𝒅𝒆 𝒄𝒍𝒐𝒄𝒌 ≅ 𝟏, 𝟑𝟖 × 𝟏𝟎𝟗 𝑮𝒉𝒛

9) Qual a frequência do ciclo de clock se instruções do Tipo-R, lw, sw e beq forem executadas?
Considere em sua resolução que elementos não necessários para a execução da instrução possuem
latência zero.
Contagem de Instruções = 1; 1
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝐶𝑙𝑜𝑐𝑘 = 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈
CPI = 1;
SW
Componentes Latência(ps)
Memória de Instruções 200 Tempo de CPU 470ps = 4,7 x 10-10 segundos
Banco de Registradores 90
ALU 90
Velocidade de
Memória de Dados 90 ≅ 𝟐, 𝟏𝟐 × 𝟏𝟎𝟗 𝑮𝒉𝒛
Clock
Total Latência: 470
BEQ
Componente Latência(ps)
Memória de Instruções 200 Tempo de CPU 380ps = 3,8 x 10-10 segundos
Banco de Registradores 90
ALU 90
Velocidade de
≅ 𝟐, 𝟔𝟑 × 𝟏𝟎𝟗 𝑮𝒉𝒛
Clock
Total Latência: 380

Resposta: A frequência do Clock (ou velocidade do Clock) seria de aproximadamente 𝟏, 𝟑𝟖 ×


𝟏𝟎𝟗 𝑮𝒉𝒛, sendo esta a velocidade calculada no item 8 desta lista para a instrução “lw” ( a mais longa).
10) Considere um benchmark em que 30% das instruções sejam add, 10% addi, 10% beq, 30% lw e
20% sw.

a) Se pudéssemos melhorar a latência de apenas um componente do caminho de dados em 10%, qual


deveria ser?

Memória de Dados. Sendo a instrução lw a mais longa (e com a maior latência) e dessa forma a que
define o desempenho, a memória de dados é o componente com a maior latência e por isso seria o
componente onde a melhoria deve ser aplicada.

b) Qual o ganho de desempenho seria observado, para este benchmark, se a melhoria fosse
implementada?

Instrução lw é a única que contém o componente Memória de Dados;


30% das instruções são instruções lw;

𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜 𝑎𝑓𝑒𝑡𝑎𝑑𝑜 𝑝𝑒𝑙𝑎 𝑚𝑒𝑙ℎ𝑜𝑟𝑖𝑎


𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜 𝑎𝑝𝑜𝑠 𝑚𝑒𝑙ℎ𝑜𝑟𝑖𝑎 = + 𝑡𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜 𝑛ã𝑜 𝑎𝑓𝑒𝑡𝑎𝑑𝑜
𝑞𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑚𝑒𝑙ℎ𝑜𝑟𝑖𝑎

0,3 × 𝑡𝑒𝑚𝑝𝑜
𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜 𝑎𝑝𝑜𝑠 𝑚𝑒𝑙ℎ𝑜𝑟𝑖𝑎 = + 0,7 × 𝑡𝑒𝑚𝑝𝑜
0,1 × 𝑡𝑒𝑚𝑝𝑜

𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜 𝑎𝑝𝑜𝑠 𝑚𝑒𝑙ℎ𝑜𝑟𝑖𝑎 = 3 × 𝑡𝑒𝑚𝑝𝑜 + 0,7 × 𝑡𝑒𝑚𝑝𝑜

𝑻𝒆𝒎𝒑𝒐 𝒅𝒆 𝒆𝒙𝒆𝒄𝒖çã𝒐 𝒂𝒑𝒐𝒔 𝒎𝒆𝒍𝒉𝒐𝒓𝒊𝒂 = 𝟑, 𝟕 × 𝒕𝒆𝒎𝒑𝒐

Resposta: O tempo de execução após a melhoria é 3,7 vezes maior que o tempo original.

Você também pode gostar