Arquitectura de Computadores
Controlo, Dados e Estruturais
Explique cada um deles
Estruturais: utilização do mesmo recurso por duas instruções
Dados: uma instrução depende do resultado da anterior (que ainda não foi disponibilizado)
Controlo: quando há saltos
Explique cada uma das fases do pipeline
1.Vai buscar instrução à memória (fetch)
2.Lê registos e descodifica instrução simultaneamente (decode)
3.Executa a instrução ou calcula um endereço (execute)
4.Acede aos operandos na memória de dados (memory)
5.Escreve o resultado num registo (write-back)
Como resolver conflitos de controlo?
–“Bloquear” –quando a instrução for um salto (branch) colocar bolhas até o pipeline determinar o destino do salto.
–“Prever” –ex: prever que o salto será efetuado/não efetuado. Os computadores modernos fazem “previsão” de saltos.
Indique em que consiste o Forwarding (ou bypassing).
Passar os dados directamente para a próxima instrução, sem passar pela fase de WB, se já estiverem disponíveis no pipeline.
Classifique cada um dos conflitos de dados
RAW - uma instrução tenta ler um operando antes de este ser escrito por uma instrução anterior. Forwarding.
WAW (Write -After -Write): uma instrução tenta escrever um operando antes de este ser escrito por uma instrução anterior. No MIPS só pode acontecer com operações FP.
WAR (Write -After -Read): uma instrução tenta escrever um operando antes de este ser lido por uma instrução anterior. No MIPS nunca acontece (a leitura é no 2º ciclo).
Indique como está desenhado o conjuntos de instruções para o pipeline no MIPS.
O MIPS tem poucos formatos de instruções e os registos origem estão localizados no mesmo sítio para todas as instruções.
Os operandos em memória só aparecem em loads e stores e no execute é calculado o endereço de memória que pode ser acedido logo na fase seguinte.
É necessário que os operandos estejam alinhados em memória.
Expliquei cada um dos esquemas para reduzir a