Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores 2º sem. 2004/05 2005/04/18 1º Teste Duração: 1,5 horas Grupo I – Lei de Amdahl O que é a lei de Amdahl? Para que serve? Escreva a equação de Amdahl e especifique o significado dos termos. Grupo II – Aritmética Escreva o número decimal -20,75 em vírgula flutuante e precisão simples, admitindo que obedece à norma IEEE 754. Grupo III – Datapath de ciclo único Considere o caminho da dados (datapath) de ciclo único que se indica a seguir. 1.Indique os tipos de instruções que este datapath é capaz de executar. 2. Admita que pretende modificar este datapath, por forma a que ele execute uma variante de lw (load word) que soma o conteúdo de dois registos para obter o endereço do dado a carregar no registo destino. Esta instrução usa o formato-R. Que modificações terá que efectuar no datapath e no controlo para que esta instrução possa ser implementada? Grupo IV – Datapath multiciclo Considere o caminho de dados (datapath) multiciclo que se indica a seguir. 1. Porque é que podemos afirmar que se trata de um datapath multiciclo? 2. Qual é o efeito que uma falha do tipo s-a-0 (“stuck at 0”, ou sinal forçado a 0) tem no funcionamento do datapath, se essa falha ocorrer nos sinais RegDst e ALUSrcA? Grupo V – Pipeline simples 1. Com o caminho de dados (datapath) que se segue, quantas instruções devem ser eliminadas do pipeline quando um branch é tomado (qundo o programa salta para o endereço alvo do branch)? 2. Em que condições é que o controlo (a oval do andar ID) deve activar o sinal IF.Flush (no canto superior esquerdo da figura)? Em que medida é que a activação de IF.Flush entra em conflito com a activação do sinal de stall (ou de hazard) no registo IF.ID? 3. Considere a seguinte sequência de código SUB R2, R4, R5 BEQ R2, R3, Target Porque é que esta sequência não funciona correctamente com este hardware? 4. Consegue resolver este problema (naturalmente, modificando o hardware) sem aumentar o número de instruções eliminadas no caso de o branch ser tomado?