Instituto Superior Técnico
Departamento de Engenharia Electrotécnica e de Computadores
Arquitectura de Computadores
2º sem. 2004/05
2005/06/6
2º Teste
Duração: 1,5 horas
Grupo I – Superpilining [5 valores]
Admita que tem um pipeline com emissão simples, execução em ordem , 1 andar de
fetch, 1 andar de descodificação, múltiplos andares de execução (que incluem o acesso à
memória de dados), e 1 andar de write-back. Admita ainda as seguintes latências:
MUL.D = 5 ciclos, ADD.D = 3 ciclos, DIV.D = 2 ciclos, operações sobre inteiros = 1
ciclo. Admita bypassing total e que necessita de 2 ciclos para acessos à memória de
dados, isto é, os loads e stores precisam de 3 ciclos (incluindo o cálculo dos endereços).
Finalmente, as condições dos branches são calculadas no primeiro andar de execução
(unidade de execução de inteiros).
[2 val] a) Admita que este pipeline é formado por uma sequência linear de andares, em
que andares posteriores servem de nops para instruções mais curtas. Desenhe cada andar
do pipeline como uma caixa (sem pormenores internos), e dê-lhe uma designação
apropriada. Descreva as operações efectuadas em cada um dos andares e mostre todos
os caminhos de bypass (com setas entre andares). O seu objectivo consiste em construir
um pipeline que nunca faz stalls, a menos que um operando não esteja pronto.
Identifique cada uma das setas com o tipo de instruções que fazem o forward dos seus
resultados ao longo do caminho correspondente à seta.
[1 val] b) Quantos “branch delay slots” são necessários com esta arquitectura? Porquê?
[1 val] c) Uma predição dinâmica de saltos poderia melhorar o desempenho do
pipeline? Porquê?
[1 val] d) No pipeline de 5 andares que se conhece da teórica, um LW seguido de um
SW que usa o registo carregado no LW para escrever na memória de dados não produz
stalls. Por exemplo:
LW
SW
R4, 0(R2)
R4, 0(R3)
Isto ainda é verdade com o pipeline da alínea a)? Porquê?
Grupo II –Caches [7 valores]
Para este problema, use a seguinte informação: cache com 96 bytes de capacidade total;
1 palavra = 4 bytes; política de substituição de blocos do tipo LRU; e a cache está
inicialmente vazia.
1 de 5
[3 val] a) Considere a hipótese de desenhar uma cache associativa de 3 vias com blocos
de 2 palavras. Preencha a tabela que se segue, admitindo a sequência de endereços
decimais nela indicada (de cima para baixo). Os endereços são de bytes. No caso de
existir um “miss”, coloque um X na coluna adequada. No caso de haver um “hit”,
indique o tipo de localidade usada para justificar o “hit” (temporal ou espacial). Se
achar preferível, preencha em primeiro lugar a tabela da alínea c) deste problema.
Ender. de leitura (byte)
Decimal
0
4
8
12
0
4
8
36
132
116
16
4
64
112
84
20
64
60
56
36
Binário
0000
0000
0000
0000
0000
0000
0000
0010
1000
0111
0001
0000
0100
0111
0101
0001
0100
0011
0011
0010
Tipo de “miss”
Obrigat. Conflito Capacidade
Localidade no “hit”
Temporal
Espacial
0000
0100
1000
1100
0000
0100
1000
0100
0100
0100
0000
0100
0000
0000
0100
0100
0000
1100
1000
0100
[2 val] b) Qual é o “miss rate” no acesso a esta cache? E qual é o tempo médio de
acesso ao sistema de memória em que a cache se inesere (apenas existe esta cache no
nível 1, e não existem níveis superiores de caches), se o “hit time” no acesso à cache for
de 2 ciclos de relógio e se o acesso à memória levar 60 ciclos de relógio?
[2 val] c) Mostre o estado final da cache, indicando na tabela que se segue os endereços
dos bytes de início de cada palavra em cada bloco da cache.
Índice
Endereço de memória do byte de início das palavras
guardadas am cada bloco
Palavra 0
Palavra 1
0
1
2
2 de 5
3
Grupo III – Escalonamento estático e dinâmico [6 valores]
O código MIPS que se segue calcula a expressão E = A*B + C*D em vírgula flutuante
(FP), tendo os endereços de A, B, C D e E sido previamente guardados nos registos R1,
R2, R3, R4 e R5, respectivamente.
L.D
L.D
MUL.D
L.D
L.D
MUL.D
ADD.D
S.D
F0,
F1,
F0,
F2,
F3,
F2,
F0,
F0,
0(R1)
0(R2)
F0, F1
0(R3)
0(R4)
F2, F3
F0, F2
0(R5)
[2val] a) Calcule o número de ciclos de relógio necessários à execução deste código
(mais exactamente, o número de ciclos entre a emissão da primeira instrução e a
emissão da última, inclusivé) admitindo um pipeline simples com execução em ordem e
sem bypass (forwarding), e com emissão simples.
O caminho de dados (datapath) inclui uma unidade de load/store, um somador FP e um
multiplicador FP. Admita as seguintes latências, em ciclos de relógio: load = 2,
multiplicação FP = 4 e adição FP = 2.
O Write-back (WB) para os registos FP demora 1 ciclo.
Admita que todas as unidades funcionais são completamente pipelined, e que não
existem conflitos no WB.
Admita ainda que todas as instruções antes do primeiro Load já terminaram as suas execuções,
e que existe uma FIFO com capacidade infinita para guardar as instruções no andar de emissão.
Use a tabela que se segue.
Ciclo
0
1
2
3
4
5
6
7
8
9
10
11
Instrução descodificada
(entra no andar de
emissão)
L.D
F0,0(R1)
Instrução emitida
(entra no andar de
execução)
3 de 5
Ciclo de WB para a
instrução emitida
12
13
14
15
16
17
18
19
20
[2val] b) Reordene as instruções dadas (escalonamento estático) por forma a minimizar
o tempo de execução no mesmo pipeline anterior. Mostre a nova sequência e o número
de ciclos de relógio de execução das instruções reordenadas.
Use a tabela que se segue.
Ciclo
Instrução descodificada
(entra no andar de
emissão)
Instrução emitida
(entra no andar de
execução)
Ciclo de WB para a
instrução emitida
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[2val] c) Admita agora que o pipeline anterior foi aumentado com um dispositivo de
escalonamento dinâmico especulativo. A emissão continua a ser simples. Ignore
conflitos estruturais, com excepção da descodificação, que continua a exigir um ciclo
por instrução. Mostre como é agora feita a execução do código original da alínea a), e
quantos ciclos são necessários para a sua execução.
Compare com os resultados obtidos por optimização com o escalonamento estático da
alínea b).
Será que o código optimizado com escalonamento estático executaria mais rapidamente
nesta máquina, que possui escalonamento dinâmico? Porquê?
4 de 5
Use a tabela que se segue.
Ciclo
Instrução descodificada
(entra no andar de
emissão)
Instrução emitida
(entra no andar de
execução)
Ciclo de WB para a
instrução emitida
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Grupo IV – Memória virtual [2 valores]
Admita o seguinte esquema de memória virtual:
(i)
endereços virtuais de 32 bits
(ii)
páginas com 8 kbytes
(iii) memória física com 64 Mbytes
(iv)
TLB com mapeamentro directo e 128 entradas, com uma página física por
entrada
(v)
Cada TLB possui um bit de Validade e um bit “Dirty”.
[2val] Determine o tamanho de cada entrada (PTE) do TLB em número de bits, se
usar o número mínimo de bits de endereço físico. Desenhe esquematicamente a
estrutura do TLB.
5 de 5
Download

Teste 2