Prova Organização de Computadores
Por: Talisson Iago • 19/11/2022 • Exam • 797 Palavras (4 Páginas) • 88 Visualizações
Universidade Federal de Minas Gerais – UFMG
Instituto de Ciências Exatas – ICEx
Departamento de Ciência da Computação – DCC
Prova 2 - 2022/01
Disciplina: Organização de Computadores I – DCC 006
Professor: Daniel Fernandes Macedo
Nome: _____________________________________________________
Questão 1 (6 pontos)
A empresa Hard Co. possui um conjunto de unidades funcionais implementadas, e está desenvolvendo uma nova linha de processadores seguindo o conjunto de instruções do RISC-V. O processador irá suportar instruções lógico-aritméticas com e sem imediato, load-stores e também desvios. A empresa vai implementar processadores seguindo a mesma separação de tarefas por ciclo do nosso livro texto.
- Classifique as máquinas do melhor para o pior desempenho (e a máquina X tem mais vazão que Y, então Y recebe 1 na sua coluna e X recebe 2. Não se esqueça que para algumas métricas um valor menor pode ser pior!) – 3 pontos
Métrica | Uniciclo | Multiciclo sem pipeline | Multiciclo com pipeline |
Tempo de ciclo | 1 | 3 (2 desconsiderando o controle mais complexo) | 2 |
CPI (# ciclos por instrução) | 3 | 2 | 1 |
IPC (instr. completadas por ciclo) | 3 | 1 (2 desconsiderando stalls) | 2 (3) |
- Uma última opção que a Hard Co. quer considerar é o desenvolvimento de um processador superescalar, podendo disparar um load/store e uma instrução logico-aritmética por ciclo. Indique, para cada métrica abaixo, qual deve melhorar, piorar ou se manter inalterada, explicando a sua opinião. – 3 pontos
Considerando a comparação com o multiciclo com pipeline
Tempo de ciclo – igual. Mantém o mesmo caminho de dados.
CPI – Igual. Mantém o mesmo caminho de dados.
IPC – Maior. Entrega duas instruções por ciclo
Questão 2 (10 pontos)
O código abaixo está escrito em RISC-V. Ele irá executar em um processador que possui pipeline similar ao que foi desenvolvido no nosso livro-texto (ou seja, possui unidade de adiantamento). Responda:
01 | addi x10, x0, 1 | |
02 | addi x11, x0, 2 | |
03 | ld x4, 10(x7) | |
04 | ld x5, 14(x7) | |
05 | add x3, x4, x5 | |
06 | or x0, x10, x11 | |
07 | ld x6, 18(x7) | |
08 | repete: | beq x5, x6, sai |
09 | subi x5, x5, 1 | |
10 | beq x0, x0, repete | |
11 | sai: | sub x1, x4, x5 |
- Em quais linhas de código temos hazards (perigos) de dados? 5 e 8
- Em quais linhas do código temos hazards (perigos) de controle? 8 e 10
- Em quais linhas o pipeline irá gerar um stall devido aos hazards? 5, 8, 10
- Re-escreva o código acima da forma mais eficiente, adicionando a menor quantidade possível de nops, de forma a reduzir os hazards.[a]
01 | addi x10, x0, 1 | |
02 | addi x11, x0, 2 | |
03 | ld x4, 10(x7) | |
04 | ld x5, 14(x7) | |
05 | ld x6, 18(x7) | |
06 | add x3, x4, x5 | |
07 | or x0, x10, x11 | |
08 | repete: | beq x5, x6, sai |
09 | subi x5, x5, 1 | |
10 | beq x0, x0, repete | |
11 | sai: | sub x1, x4, x5 |
Aqui considerei também quem colocou dois nops depois de cada instrução de desvio. Poderão ser gerados dois stalls a cada desvio devido ao hazard de controle.
- É possível resolver todos os hazards (controle e dados) apresentados? Em caso negativo, proponha formas em hardware para minimizar a quantidade de stalls nas situações que não puderam ser evitadas.
Não, ainda temos os hazards de controle. Eles podem ser amenizados com mecanismos de predição de desvio ou dicas na instrução se o desvio deve ser tomado ou não.
Questão 3 (5 pontos)
Dado o caminho de dados abaixo de uma máquina uniciclo, indique os valores dos bits de controle (0, 1 ou X – don’t care) para as instruções abaixo do conjunto de instruções do RISC-V.
[pic 1]
Instrução | RegWrite | AluSrc | PCSrc | MemRead | Memwrite | MemToReg |
lw | 1 | 1 | 0 | 1 | 0 | 0 |
sw | 0 | 1 | 0 | 0 | 1 | X |
sub | 1 | 0 | 0 | X | 0 | 1 |
beq | 0 | 0 | ? | X | 0 | X |
jal | 1 | 1 | 1 | x | 0 | x |
- Marquei com ? o PCSrc do BEQ porque faltou um AND no caminho de dados, complicando a análise. Qualquer resposta aqui foi considerada certa.
- Quem indicou que considerou a ordem inversa dos bits no MUX, ou que percebi que houve uma inversão de todos os bits de controle, também teve os pontos considerados.
Questão 4 (4 pontos)
O processador multiciclo com pipeline possui registradores temporários entre os seus estágios, por exemplo os registradores EX/MEM entre os estágios EX e MEM. Explique:
...