Teste 3

Propaganda
3º Teste de Arquitetura de Computadores
2º Semestre 2011/2012
IST - Taguspark
Duração: 45 minutos
NOME
23 maio 2012
NÚMERO
1. (3 valores) Suponha que está a executar um benchmark num computador e que o computador consegue
executá-lo 10 vezes por segundo. Esse programa gasta cerca de 40% do tempo a processar dados e os restantes
60% a ler/escrever dados de/para um disco. Quando está a processar não está a lidar com o disco e vice-versa.
Se duplicarmos a frequência de relógio do processador (assumindo que a memória suporta isto), quantas vezes
por segundo, aproximadamente, deverá o computador conseguir executar o mesmo benchmark? Justifique o
resultado.
Tempo original T = 0,4 T + 0,6 T
Novo tempo
Tn = 0,2 T + 0,6 T = 0,8 T
Irá conseguir executar o benchmark 10*T/Tn vezes/segundo, ou 10/0,8 = 12,5 vezes/seg
2. (4 valores) O circuito seguinte implementa a operação de fatorial do operando, usando microprogramação.
DEC_R1 decrementa R1 de uma unidade. LE1 fica a 1 sempre que R1 ≤ 1. A ALU suporta 4 operações
(especificadas por OP_ALU): na sua saída pode aparecer R1+R2, R1*R2, 0 ou 1.
Preencha a tabela seguinte com as microinstruções necessárias para implementar a funcionalidade
de fatorial. Preencha apenas o valor de cada sinal que deva estar ativo em cada microinstrução, e
deixe em branco os restantes. Pode usar valores numéricos ou outra notação que se perceba e
traduza o efeito desejado.
Endereço
Microinstrução
(RTL)
0
R1 Operando;
R2 1
1
(LE1) : MPC 5
2
R2 R2 * R1
3
R1 R1 - 1
4
MPC 1
5
MPC 5
LOAD_R1 DEC_R1 LOAD_R2 OP_ALU SEL_MICRO_SALTO MICRO_SALTO
Sim
Sim
Sim
1
LE1
5
1
1
1
5
R1*R2
Sim
3. (2+3 valores) Suponha que a cache do PEPE (processador com 16 bits de endereço, endereçamento de byte) é
de mapeamento direto e tem uma capacidade de 64 palavras, organizadas em blocos de 8 palavras.
a) Indique o número de bits de cada um dos campos em que o endereço se divide para acesso à cache.
Etiqueta
Índice
Palavra dentro do bloco
Byte dentro da palavra
9
3
3
1
b) Suponha que a cache do PEPE tem 8 bits de etiqueta e 4 bits de índice, está inicialmente vazia e são feitos
os acessos em leitura aos endereços indicados na tabela e pela ordem com que aparecem. Para cada acesso,
indique o número da linha da cache que é usada, se foi hit (sim ou não) e qual o valor da etiqueta (em
binário) com que a linha fica após esse acesso.
Endereço acedido
32AH
564H
732H
56AH
328H
15AH
Linha da
cache
2
6
3
6
2
5
Hit
(S ou N)
N
N
N
S
S
N
Etiqueta
(em binário)
0000 0011
0000 0101
0000 0111
0000 0101
0000 0011
0000 0001
4. (4 valores) Imagine um processador com endereçamento de byte, capaz de endereçar um espaço virtual de
00000H até FFFFFH, enquanto o espaço de endereçamento físico vai de 0000H até FFFFH. As páginas têm
uma dimensão de 100H bytes. A TLB é totalmente associativa de 8 entradas. Após alguns acessos, a TLB
ficou como indicada. Preencha a tabela seguinte para este exemplo concreto.
Linha da Bit de
TLB
validade
0
1
2
3
4
5
6
7
0
1
1
1
0
0
1
0
N.º página
virtual
(hexadecimal)
C5E
3B
C5F
213
6A
A02
23
45
N.º página
física
(hexadecimal)
18
2B
6F
0E
23
2B
35
2B
Dimensão do espaço físico (em Bytes)
64K
Dimensão do espaço virtual (em Bytes)
1M
N.º páginas do espaço virtual
4K
Endereço físico que corresponde ao
endereço virtual 231AH
351AH
Endereço virtual que corresponde ao
endereço físico 0E76H
21376H
5. (2+2 valores) Considere que o PEPE é um processador com um pipeline de 4 estágios: B (Busca de Instrução),
D (Descodificação e Busca de Operandos), E (Execução da Instrução) e W (Escrita do Resultado). Os registos
entre estágios são read-after-write.
a) No programa seguinte, identifique todos os conflitos de dados, colocando um círculo à volta do registo
cujo valor depende, em conflito, de uma instrução anterior.
b) No espaço seguinte, refaça o programa, eliminando os conflitos por meio de uma solução em software.
MOV
MOV
ADD
OR
SUB
MOV
R1, 6
R2, 5
R2, R1
R1, R2
R1, 3
R1, 8
MOV
MOV
NOP
ADD
NOP
OR
NOP
SUB
MOV
R1, 6
R2, 5
R2, R1
R1, R2
R1, 3
R1, 8
Download