arquitectura de computadores - autenticação · as variaveis sao alocadas em regioes adjacentes,...

8
Arquitectura de Computadores 2 o Semestre (2015/2016) MEAer 2 o Teste - 16 de Junho de 2016 Dura¸c˜ ao: 1h30 + 0h15 Regras: Resolva o teste no pr´ oprio enunciado. O espa¸ co reservado para cada pergunta ´ e suficiente para a sua resposta. Tenha em aten¸ c˜ao que cada grupo deve ficar em folhas separadas. Utilize os espa¸ cos reservados para rascunho. Identifique todas as folhas que entregar. Folhas n˜ ao identificadas n˜ ao ser˜ ao cotadas! Responda ao teste com calma. Se n˜ ao sabe responder a uma pergunta, passe `a seguinte e volte a ela no fim. I. A arquitectura em pipeline apresentada reflecte uma tendˆ encia habitual em muitos processadores que desdobra em dois est´ agios independentes a descodifica¸ ao das instru¸c˜ oes (est´ agio “Decode” ) e a leitura dos operandos do banco de registos (est´ agio “Issue” ). Para al´ em disso, o acesso ` a mem´ oria ´ e desdobrado em dois est´ agios independentes, correspondentes ao c´ alculo e descodifica¸c˜ ao do endere¸co efectivo (est´ agio “M1” )e` a leitura/escrita do elemento de mem´ oria (est´ agio “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 n˜ ao terem sido implementados quaisquer mecanismos para resolu¸c˜ ao autom´ atica de 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 andares X/A1/P1/M1. A predi¸ ao de saltos est´ a implementada de acordo com uma pol´ ıtica est´ atica do tipo predict not taken, com resolu¸c˜ ao da condi¸c˜ ao de salto no est´ agio X. Por conseguinte, em caso de salto tomado, a instru¸c˜ ao de destino apenas pode ser lida da mem´ oria de programa quando ainstru¸c˜ ao de salto entra na fase seguinte ` a X. Em caso de conflito (qualquer que ele seja), as instru¸c˜ oes s˜ ao bloqueadas (“Stall” ) na fase D. Os registos (de 64-bits) da unidade de v´ ırgula flutuante s˜ ao representados por Fx, enquanto que os registos da unidade inteira s˜ ao representados por Rx. Existem dois barramentos independentes para acesso ` as mem´ orias de dados e de programa. A frequˆ encia de funcionamento do processador ´ e de 1,5 GHz. O tro¸ co de c´ odigo seguinte foi executado para filtrar N=256 amostras x(i) obtidas atrav´ es do porto de I/O correspondente ao endere¸ co (fixo) FFh: y(n)= p 1/2.y(n - 1) + (1 - p 1/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. umero: Nome: ag. 1 de 8

Upload: ngohanh

Post on 08-Dec-2018

215 views

Category:

Documents


0 download

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