Arquitetura de computadores
Por: Kaio Ribeiro • 6/3/2018 • Exam • 927 Palavras (4 Páginas) • 370 Visualizações
1-Quando um designer de processadores considera um possível melhoramento para o caminho de dados do processador, a decisão usualmente depende do trade-off entre custo/desempenho. Nos três problemas que seguem, assuma que iniciamos com o caminho de dados da figura 1, onde os blocos I-Mem, Add, Mux, ALU, Regs, DMem e controle tem latências de 400 ps, 100 ps, 30 ps, 120 ps, 200 ps, 350 ps e 100 ps, respectivamente, e custam 1000, 30, 10, 100, 200, 2000, e 500 respectivamente. Considere a adição de um multiplicador à ALU. O multiplicador irá adicionar 300 ps a latência da ALU e 600 ao custo da ALU. O resultado será uma redução de 5% de instruções executadas, visto que não será mais necessário emular a instrução MUL.
1- T. inst.=400+200+30+120+350+30=1130ps
custo=1000+200+500+30+30+30+10+10+10+1000+2000=3840.
custo=3840+600=4440. T.inst=1130+300=1430
- Qual é o tempo do ciclo de clock com e sem esta melhoria?
a-antigo/novo= 1130/0.95*1430=0,83.
b) Qual será o speedup alcançado por esta melhoria?
b-speedup=1/0,83=1,20.
c)Compare a taxa entro o custo e desempenho com e sem esta melhoria.
c-custo desempenho sem melhoria 3820/1130=3,44
custo desempenho com melhoria 4490/1430=3,13
2- Assuma que não existem paradas do pipeline e o percentual de instruções executadas conforme a tabela abaixo. Qual o percentual de tempo que a memória de dados é usada?
2-35%
3-Considere o tempo de execução de cada estágio do pipeline conforme a tabela abaixo.
[pic 1]
Também considere que as instruções executadas pelo processador possuem os seguintes percentuais:
[pic 2]
- Qual é o tempo do ciclo de clock de um processador com pipeline e em outro sem pipeline?
a-ciclo de clock=250+350+150+300+200=1250ps
com pipeline-T. ciclo=350ps
- Qual é o tempo total de uma instrução LW em um processador com pipeline e em outro sem pipeline?
execução lwi sem pipeline.250+350+150+300+200=1250ps.
execução lw, com pipeline:nº estagios* t. ciclos clok=5*350=1750ps.
- Se nós dividirmos um estágio do caminho de dados do pipeline em dois novos estágios com a metade do tempo de execução do estágio original, qual seria o estágio que deveria ser dividido e qual seria o novo tempo do ciclo de clock do processador?
Dividindo ID=350ps/2=175ps {sem pipeline:1250ps.
{com pipeline: 350ps.
d) Assuma que não existem paradas ou hazards, qual é a taxa (percentual) de utilização da memória de dados?
lw+sw=20%+15%=35%
lw+alu=45%+20%=65%
4. Neste exercícios vamos examinar o efeito da dependência de dados na execução do pipeline básico de 5 estágios (fetch, decodificação, execução, memória e write-back). para isto vamos usar a seguinte sequência de instruções:
or r1, r2, r3
or r2, r1, r4
or r1, r1, r2
Considere os seguintes tempos para o ciclo de clock conforme as opções do mecanismo de forwarding:
[pic 3]
- Indique as dependências e o seu tipo:
é so ligar os repetidos da linha 2 e 3 para a primeira.
- Assuma que não é utilizado o forwarding neste processador. Indique os hazards e adicione instruções nop para eliminá-los.
1- or r1,r2,r3-------2- nop-----------3- nop---------4- or r2,r1,r4---------5- nop------6- nop---------7-or r1,r1,r2
- Assuma que o processador possui encaminhamento completo. Indique os hazards e adicione instruções nop para eliminá-los.
nao possui hazards
- Qual é o tempo total de execução desta sequência de instruções sem forwarding e com forwarding completo? Qual o speedup alcançado pela adição do forwarding completo.
sem fowarding=7+4=11 ciclos ---> 11*250=2750ps.
com fowarding=3+4=7 ciclos --->7*300=2100ps.
speedup=2100/2750=0,76.
com fowarding completo tempos 24% a mais no desempenho.
- Adicione nop neste código para eliminar os hazards para um pipeline com forwarding alu-alu (não existe forwarding do estágio de memória para o estágio de execução).
- Qual é o tempo total de execução desta sequência de instruções com forwarding alu-alu? Qual o speedup sobre o pipeline sem forwarding?
com fowarding alu-alu=5+4=9ciclos.
t. exec=9*290=2610ps
7. Quais os ganhos obtidos com a utilização do pipeline?
Ganho em transporte.
8. Quais os principais desafios para a implementação de uma cpu com pipeline?
Hazards
9. O que são hazards de dados? Apresente um código que possua hazards de dados.
Hazards de Dados acontecem quando uma instrução depende no resultado de uma instrução anterior de modo que a primeira instrução ainda não computou esse resultado.exemplo:
...