arquitectura de computadores - autenticação · as variaveis sao alocadas em regioes adjacentes,...
TRANSCRIPT
Arquitectura de Computadores
2o Semestre (2015/2016) MEAer
2o Teste - 16 de Junho de 2016 Duracao: 1h30 + 0h15
Regras:
• Resolva o teste no proprio enunciado. O espaco reservado para cada pergunta e suficiente para a sua resposta. Tenha em atencaoque cada grupo deve ficar em folhas separadas. Utilize os espacos reservados para rascunho.
• Identifique todas as folhas que entregar. Folhas nao identificadas nao serao cotadas!
• Responda ao teste com calma. Se nao sabe responder a uma pergunta, passe a seguinte e volte a ela no fim.
I. A arquitectura em pipeline apresentada reflecte uma tendencia habitual em muitos processadoresque desdobra em dois estagios independentes a descodificacao das instrucoes (estagio “Decode”)e a leitura dos operandos do banco de registos (estagio “Issue”). Para alem disso, o acesso amemoria e desdobrado em dois estagios independentes, correspondentes ao calculo e descodificacaodo endereco efectivo (estagio “M1”) e a leitura/escrita do elemento de memoria (estagio “M2”).
F D
Fetch Decode
I
Issue
P1
Floating-Point/Integer Multiplier
P2 P3 P4 P5
A1
Floating-Point Adder
A2 A3
X
Integer Adder / Branch Resolution
M1
Load/Store Unit
M2
W
Writeback
Stall ID
EXE
Admita ainda que:
• Apesar de nao terem sido implementados quaisquer mecanismos para resolucao automaticade conflitos de dados, o pipeline do processador inclui caminhos de adiantamento de dados(forwarding) definidos entre as saıdas dos andares X/A3/P5/M2 e as entradas dos andaresX/A1/P1/M1.
• A predicao de saltos esta implementada de acordo com uma polıtica estatica do tipo predict
not taken, com resolucao da condicao de salto no estagio X. Por conseguinte, em caso desalto tomado, a instrucao de destino apenas pode ser lida da memoria de programa quandoa instrucao de salto entra na fase seguinte a X.
• Em caso de conflito (qualquer que ele seja), as instrucoes sao bloqueadas (“Stall”) na fase D.
• Os registos (de 64-bits) da unidade de vırgula flutuante sao representados por Fx, enquantoque os registos da unidade inteira sao representados por Rx.
• Existem dois barramentos independentes para acesso as memorias de dados e de programa.
• A frequencia de funcionamento do processador e de 1,5 GHz.
O troco de codigo seguinte foi executado para filtrar N=256 amostras x(i) obtidas atraves doporto de I/O correspondente ao endereco (fixo) FFh: y(n) =
p1/2.y(n� 1)+ (1�
p1/2).x(n� 1)
(01) loop: mul.d F2,F2,F10 ; F2 = y(n-1)
(02) l.d F1,FFh(R0) ; F10 = sqrt(1/2)
(03) mul.d F1,F1,F11 ; F11 = 1-sqrt(1/2)
(04) add.d F2,F1,F2
(05) addi R1,R1,#-8
(06) s.d F2,8000h(R1)
(07) bnez R1,loop ; Branch if not equal zero
Admita que todos os registos foram previamente inicializados de acordo com os valores pretendidos.
Numero: Nome: Pag. 1 de 8
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
(a)1 Val. Represente o diagrama temporal da execucao da primeira iteracao do ciclo deste programa.Represente as diversas fases por que passa cada instrucao, atraves dos sımbolos F, D, I,X/P/A/M e W. Nao se esqueca de representar todos os Stalls que possam ocorrer.
INSTRUCTIONS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 mul.d F2,F2,F10
2 l.d F1,FFh(R0)
3 mul.d F1,F1,F11
4 add.d F2,F1,F2
5 addi R1,R1,#-8
6 s.d F2,8000h(R1)
7 bnez R1,loop
8
9
10
11
12
(b)1 Val. Calcule o numero de ciclos de relogio necessarios para executar este programa. Calcule,tambem, o valor das seguintes metricas de desempenho: CPI, MIPS.NOTA: pode ter de estender o diagrama temporal anterior para alem da primeira iteracaodeste ciclo, de modo a analisar o padrao de execucao apos atingir o regime estacionario.
(c)11/2 Vals. Considere agora uma versao modificada deste processador, atraves da antecipacao da re-
solucao de salto para o estagio de “Issue”, passando assim a assumir saltos atrasados comdois branch delay slots. Por conseguinte, em caso de salto tomado, a instrucao de destinoe lida da memoria de programa quando a instrucao de salto entra no andar “X” do pipeline.
Optimize a execucao do segmento de codigo atraves da re-ordenacao das instrucoes.
INSTRUCTIONS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1
2
3
4
5
6
7
8
9
10
11
12
Numero: Nome: Pag. 2 de 8
F D I P , R B Pg Ps W
f D I Mini w
F D - I PI PZ F } PG B '
W
F - D - - - - I A,
A . A,W
f - . - - D I X W
F D - I P, nzw
F - D - I x W
F - D I -
f D -
:- DIP , RBRAW
Itau .W 1 - µ .1) : 17 Libs 255×17 + 13 = 6344Item .
N : 13 cicbs
CPI = # c : dos 4348teosinte: 2.920
nips = #instnv&# , = 7×250-115×109=-7×256×1500--618.2 Mips
# aids × 106 1348 * ( 06 4318
l.
d fi.
Frh ( RO) F D In, new
mull FZFZ , Flo F D I p ,P
,P
,P
, B. W
nd .l Fi,
fl,
ill F D I P,
P, B Pg P's W
addi Ri .nl, # -8 f D I x wbnetRi , Loop F D I × w
add .l F2
,Fl .FZ F D - - I A
, a AswSd FZ
,8000k ( Ri ) F - - D - -
In, Mzw
fl fi,
rfhlrcx ) F - - D In, new
null F2,f2 ,FN F D I Pi Pz P
, Ps Pg w
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
(d)1/2 Val. Quantos ciclos de relogio sao necessarios para executar esta versao do programa?
(e)2 Vals. Optimize ainda a execucao do segmento de codigo anterior, aplicando as seguintes tecnicas:
• Loop-unrolling (o numero de iteracoes deve ser reduzido por um factor de 2);
• Renomeacao de registos (pode utilizar qualquer um dos 32 registos inteiros/vırgula flu-tuante) ainda nao utilizados.
INSTRUCTIONS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Quantos ciclos de relogio sao necessarios para executar esta variante do programa?
(f)1 Val. Calcule a aceleracao (speed-up) obtida, face a versao original do algoritmo.
Numero: Nome: Pag. 3 de 8
Ilan ,w 1 : 9 nibs 9 + 255×11 = 2814 ,Ilana 2 . N : 11 <
i.d fi
,ff ( Rd ) F D In , new
mull FZ ,F2 ,FIO F D I Pi Pz B P{ P5w
mil .d Fi,
fl,
FII f D I D , P2 P } 44 P5W
l .d F 21
,ff(Rd ) F D I n , nzw
mild f 21 ,f 21,
Fil f D - I Pl Pz P } P{ P5W
all .d f2.fi .fL F - D - I A, Azasw
addi Ri ,n ,# . 16 F - DIXW
sit FZ ,+8(ri ) F D - In, niw
mull a ,F2 ,Flo F - D I P , P2 P} Pl P5W
bnetRI
,loop F D I X W
all .d f2, fzi ,
PZ F D - - . I A , A.
A,
W
S. d FZ
,800ohm , ) F - - - D - - I x W
F - - D IN new
F D I Pi B P } pl P5w
Item ,W 1 ! 18 Libs 18 + 20 x (nz -1) = 18 t Ux 127 = 25581
Iknuun 2 - he : 20 hold
Speedup .4348
#= " %
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
II.Para processar o sinal obtido de um tubo de Pitot utilizado na medida da ve-locidade de um aviao, foi utilizado um microcontrolador de 32-bits (embebidono sensor) que implementa o seguinte troco de codigo:
#define SIZE 1024
int aux[SIZE];
int x1,x2,x3,x4;
int in[SIZE];
int out[SIZE];
register int i; /* 32-bits integer in a register */
...
for(i=0; i<(SIZE-2); i++)
out[i] = 0.25*in[i] + 0.50*in[i+1] + 0.25*in[i+2];
O microcontrolador utilizado opera a uma frequencia fclk = 5 MHz e contem duas caches inde-pendentes: cache de programa com 512 Bytes e cache de dados com 1024 Bytes. Ambas as cachesusam mapeamento directo e blocos de 16 Bytes, com tH = Tclk. As caches tem uma polıtica deescrita “write-back” e estao equipadas com um “write-bu↵er”. A memoria primaria requer 230 nspara transferir cada palavra de 32-bits (simultaneamente para as caches e para o processador).Todos os barramentos (dados e enderecos) que ligam o processador, caches e memoria tem 32 bits.
O compilador nao realizou qualquer optimizacao, pelo que os operandos sao lidos na mesma ordemque aparecem no programa (ex.: para uma dada instrucao de 2 operandos Dest = Op1 OP Op2, aordem de acesso sera: Op1, Op2, Dest). As variaveis sao alocadas em regioes adjacentes, na mesmaordem em que foram declaradas no programa e por ordem crescente de enderecos. Assuma aindaque o processador nao mantem os operandos nos seus registos internos apos a execucao de cadainstrucao e que todas as posicoes da cache estao invalidas no inıcio da execucao.
(a)11/2 Vals. Descreva a organizacao da cache de dados, identificando como os bits de endereco sao usados
para aceder a cada posicao. Desenhe um esboco da organizacao da cache.
Numero: Nome: Pag. 4 de 8
Cache Dados = 102C Bites = 256 paluvnus de 32 bit
blow = 16 Bits = 4 planes → Offset = 2 bitsy
Nupe - nab direct ⇐ ) l via ) Tag = sz - 6 - z = 2< bits
zindex.
. tum¥_ = ¥0 = 6h ⇒ Index .
- 6 b : th# Vias
-tomb
:ng index offset
24 6
::utu
Hit
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
(b)11/2 Vals. Represente os vectores aux[SIZE], in[SIZE] e out[SIZE] no mapa de memoria. Assuma
que o elemento aux[0] esta alocado no endereco 80000000h.
Decomponha os bits dos enderecos aux[0], in[0] e out[0] nos campos correspondentes atag, index e o↵set da cache de dados.
(c)11/2 Vals. Tendo em conta a caracterizacao apresentada para a cache de dados, determine a taxa de
sucesso (hit-rate) da cache para este troco de programa. Para o efeito, devera enumerar todasas posicoes de memoria que sao acedidas durante o menor numero de iteracoes do ciclo for
que permita determinar o padrao de sucesso/insucesso, identificando para cada acesso: i)o endereco respectivo (na forma simbolica in[1], out[2], etc.); ii) numero da linha (index )utilizada; iii) sucesso (hit) ou insucesso (miss) no acesso.
Numero: Nome: Pag. 5 de 8
1024=2.0--1ooioooiooo
aux
10] .
8000
ooooh
s
.
- 0000 oh ooh TAG : 8000 00hINDEX .-
oooooob
OFFSET :
OOB
8000 OCO } h
out ( ]
into] =
800004°44
80000804k TAG : 8000 04hINDEX.
.
ooooots
OFFSET =
Oob8000 0803 h
in C ) \8000 oqoqh
WITHi
800008044
g Al±do , D" "
'" li " 3 'M
80000 }FEh TAG = 8000 08hINDEX .-
oooooib
OFFSET =
Oobauf ]
8000000J
in [ o ] - link 1 -
Dinll ] - linhn 2 - H
inc. ] - linh.
1 . H in [ 5 ] - link 2 - H
!n( 2 ] - lit,
1 - Hin (6) - linhu 2 - H
out H - link 1
-0out14
- link2-NO
inc. ] - linh.
1 .@!n( 2 ] - lit,
l - H
ins ) - linhu 1 - H
iHIti!⇒mf÷ihiMi:D"
Ina ] - linhnz -NO P,
,=tout
H- link i .
ofa
ins ) - linhul - NO
Inll ] - link 2 - H
in [ 5 ] - link 2 - H
outb)
- link i.NO
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
(d)1 Val. Repita a alınea anterior assumindo que a escrita dos valores calculados ao longo do programase efectua para o vector aux[] em vez de se utilizar o vector out[], isto e:
aux[i] = 0.25*in[i] + 0.50*in[i+1] + 0.25*in[i+2]
Justifique as diferencas observadas.
(e)11/2 Vals. Calcule o tempo medio de acesso a memoria para as duas alternativas consideradas nas
alıneas (c) e (d), tendo em consideracao a interligacao descrita anteriormente entre o proces-sador, a cache e a memoria primaria.
NOTA: caso nao tenha respondido as perguntas anteriores, assuma os valores de 40% e 60%para as duas alternativas consideradas (escolha o valor mais conveniente).
Numero: Nome: Pag. 6 de 8
vechn aux eshidesulinhub 4 o vector in
Inco ] - linhu 1 - @ in , } ] - linhu 1 - H Pn =
%in ii] - linhu 1 - H in
14] - linhu 2 - H fµ =
%in 12] - linhu 1 - H in
15] - linhu 2 - H
aux co ] - linhu 0 - NO aux c } ] - linhu 0 - H
in
ii] - linhu 1 - H in
it] - linhu 1 - H
ii
:iiIiiIn¥IHtHsHiIiIIiA§in ( z ] - linhu 1 - H
#inn] - linhu 1 - H
↳ Palns
in
141- linhu 2 - MU
-
aux
12] -linhu
= 5 NHT ⇒ T= zoom then - 230ns 12 aids Mb'gio
t.
= T I 200 us
tie; tu t Pm . tp = Tt 1 . 2T = Tt T
= Loo nsy2
tud= t.tt pn . he = Tt ,} . Zt
= Tt tat = 250 n%
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
III. O sistema de encaminhamento de bagagens de um aeroporto esta equi-pado com um microcontrolador de 32-bits, a correr a uma frequenciade fclk = 1 GHz, e ligado a uma memoria DRAM de 1 GByte (quepreenche todo o espaco de enderecamento fısico) enderecada em pa-lavras de 32-bits e com um tempo de acesso de 40 ns. O sistema dememoria virtual implementado e composto por uma tabela de traducaohierarquica, em que cada pagina compreende um espaco de 16 kBytes ecada descritor ocupa 64-bits. O espaco de enderecamento virtual com-preende 234 palavras de 32-bits. Este sistema esta ainda equipado comuma TLB, com um tempo de acesso maximo igual a 3,5 ns. O proces-sador incorpora uma cache unificada com um tempo de acesso (em hit)correspondente a 2 perıodos de relogio e um hit-rate de 80%.
(a)11/2 Vals. Represente (atraves de um esboco) a estrutura de traducao de cada endereco virtual, indi-
cando como os bits de endereco sao utilizados na traducao.
(b)1 Val. Calcule o tempo medio de acesso a memoria, no caso de ocorrer um Hit na TLB.
Numero: Nome: Pag. 7 de 8
Pig .nu = 16 KB >ts = Gu pduvns = 2"
pulavres → offset = 12 bit
El . virtual = 234ps,Lunas → Npig .
Virlvuis =
2¥"
=
222pdyinns
Desaitn = 64 bits = Zpukmes → # eh.lu/fnbeh=fM#bj=221=2 "e- hules
# hive :S =2×2=2
→ Directive + N!=1 12
Director .o Niue 1 Offset
) b ) b ) bPig . Fis : -
Root SHM. •
am•
sumc- Puluvm Asia
pretendF=f¥)<T=GOTtacesso = ttnud
, .w+ tuassotls
th .l , ,w
: tµ"D= /3,I)xT = f3±)×T=
4T I
e
tu,e , , ,
.µ ,
= ti"
"tpn4h . tpm.
= 2Tto
.i× GOT
= zttst = lot
⇒ faces, .
= 4T + lot = KT
= 1h n%
2o Teste (2015/16) Arquitectura de Computadores 16/06/2016
(c)1 Val. Calcule o tempo medio de acesso a memoria, no caso de ocorrer um Miss na TLB. Assumaque todas as estruturas de traducao se encontram em cache ou na memoria primaria.
(d)1 Val. Calcule o tempo medio de acesso a memoria, considerando uma probabilidade de sucesso naTLB de 90%.
(e)11/2 Vals. Para comunicar com cada tapete de encaminhamento da bagagens, o sistema utiliza um
barramento serie assıncrono do tipo RS-232. A parametrizacao adoptada considera 2 start-bits, 8 bits de dados, 1 bit de paridade (par) e 1 stop-bit, com um ritmo de 9600 sımbolospor segundo. As palavras sao transmitidas comecando pelo bit mais significativo.
Indique a sequencia de sımbolos enviados para transmitir a seguinte sequencia numerica:{FFh, C7h, 1Ah, 00h}. Identifique todos os sımbolos de controlo (ex: Start, Paridade, Stop).
Indique, o tempo necessario para transmitir uma lista constituıda por 16 kByte. Justifique.
Numero: Nome: Pag. 8 de 8
fmthud ,
tacesso = ttnub .w+ taass
. -14 th .l , ,w
:
+,
"
tp= hit GT
= 29T
Dtlpml.W=tAµd stun ,
' (tinhttpn.ly/i/tdtdtpn.tp)=2x/2=+o.2:..ot)=2xXzT
⇒ faces, .
=
2<5+10 T=
34T
=
3hn%
taaw - ta"jI"
Dienst IIIM - pri's
T 14 Tx 0.9 t 34 Tx 0.1 = 12,6T + 3 ,4T= 16T = ¥
ffh :
-11111*6iah.TL#rMfkFT5 S D D D D D D D D P shop 5 5 D D D D D D D D P shop
( 7h : THITTLITIIITTooh.tl#LfTS S D D D D D D D D P shop
S S D D D D D D D D P shop
n Byte ⇒ 2+8+1+1 = 12 sinsobs
. GKB : 21 "Byles ⇒ 12×2 "s :
-solos = 3×216 sinbobs
l say→ 9600 sihdss n= zizlb
k - 3×216 si-
bls #= 29<8 ty . f