Escolar Documentos
Profissional Documentos
Cultura Documentos
Como os dados e os endereços na arquitetura MIPS são de 32 bits, pode-se dizer que o
processador é de 32 bits.
Como o endereço de memória em MIPS é em byte, pode-se dizer que uma palavra do
processador armazenada em memória ocupa 4 posições de memória, normalmente em 4
endereços consecutivos.
c) Número de registradores
A arquitetura MIPS dispõe de 32 registradores de uso geral, de 32 bits cada, que vão de $0 a
$31, onde o $0 funciona como uma constante em instruções que necessitem.
De forma regular, todas as instruções do MIPS ocupam 1 palavra em memória, ou seja, 32 bits,
que é equivalente a 4 endereços consecutivos na memória. Cada instrução possui o código da
operação, e os operandos, se for o caso. O acesso as instruções são alinhados em uma
fronteira de palavra inteira, logo, os endereços válidos das instruções possuem os dois últimos
bits iguais a 0.
- Cada unidade funcional só pode ser usada uma vez por ciclo
Dessa forma, temos um desempenho ruim, pois só cada instrução será executada em um ciclo,
o que gera um custo maior para o HW, pois algumas unidades funcionais devem ser duplicadas,
como por exemplo a memória.
- Dessa forma, temos um desempenho consideravelmente melhor, pois cada unidade funcional
pode ser usada mais de uma vez por instrução, desde que em ciclos diferentes, gerando um
custo menor para o HW, pois não será necessário a duplicação de unidades funcionais.
3) Tanto na arquitetura projetada em sala de aula como na descrita no livro todas as instruções
aritméticas envolvem três registradores e possuem o mesmo formato. Na sua opinião de
projetista, quais as vantagens e desvantagens desta decisão de projeto?
- Vantagem:
- Desvantagem:
- Vantagem:
- Desvantagem:
A operação se torna lenta por haver apenas 32 registradores, causada por muita leitura e muita
escrita.
5) Considere três processadores P1, P2, e P3 executando o mesmo conjunto de instruções com
as frequências de clocks descritas na tabela abaixo.
Para um N = 100
c) Estamos tentando reduzir o tempo em 30%, mas isto levaria a um aumento de 20% no CPI.
Qual a taxa de clock para conseguir esta redução?
6) Considere duas implementações diferentes do mesmo conjunto de instruções, que pode ser
classificado em 4 classes de instruções: A, B, C, e D. A frequência de clock e CPI para cada uma
das implementações é dada na tabela abaixo.
Dada uma aplicação com 106 instruções sendo 10% de instruções da classe A, 20% de
instruções da classe B, 50% de instruções da classe C e 20% de instruções da classe D.
Ciclos P1 => (10,6 * 1 + 21,2 * 2 + 53 * 3 + 21,2 * 4) = 10,6 + 42,4 + 159 + 84,8 = 296,8 ciclos
Ciclos P2 => (10,6*2 + 21,2 * 2 + 53 * 2 + 21,2 * 2) = 21,2 + 42,4 + 106 + 42,4 = 212
Tempo de execução P2 = 212 / 2*10^9 = 106*10^-9
Logo, Implementação P2 tem melhor desempenho por executar o código mais rápido.
P2 = 212/106 = 2CPI
P1 = 296,8 ciclos
P2 = 212 ciclos
7) Suponha que foi inserida a instrução move rs, rt, que copia o conteúdo do registrador rs
para o registrador rt. Considerando a implementação apresentada no livro texto, como se
poderia implementar esta instrução preservando todos os outros registradores de forma a
ser ter o menor CPI. Quais as modificações na unidade de processamento e na unidade de
controle e qual seria o CPI desta instrução?
Para inserir a função [MOVE rs, rt], que copia o conteúdo de rs para rt, podemos reutilizar a
função ADD que já está no sistema. Aplicando as seguintes alterações:
- Criar um Mux (0,1) na entrada do Read Register 2 da caixa dos registradores, que, caso seja 0
o valor que entrará será o rt e se for 1 será o valor constante zero. Onde o valor desse Mux
seria definido pelo OPcode através de um sinal da unidade de controle;
- Com isso, a ULA realizaria a função soma do rs com o valor constante zero;
- A unidade de controle estaria ativa de modo a salvar o resultado dessa soma no Write Data,
usando como Write Register o próprio rt, ambos selecionados através dos Mux que já estão no
sistema.