4. O SIMULADOR SIMUS 4.1 - Descrição A partir da escolha da ...
4. O SIMULADOR SIMUS 4.1 - Descrição A partir da escolha da ...
4. O SIMULADOR SIMUS 4.1 - Descrição A partir da escolha da ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
34<br />
estágios no "pipeline", uma com barramento Harvard exige um estágio a<br />
mais no "pipeline", para que possa haver melhoria no desempenho. O uso<br />
de uma cache de desvio e de um barramento de 64 bits também exige<br />
modificações na uni<strong>da</strong>de de busca de instruções. Estas modificações<br />
foram feitas mantendo-se a compatibili<strong>da</strong>de binária.<br />
A implementação do NCE/UFRJ tem uma característica<br />
particular para li<strong>da</strong>r com as dependências de <strong>da</strong>dos no "pipeline". Na<br />
arquitetura SPARC estas dependências só ocorrem entre o estágio de<br />
decodificação e os demais estágios <strong>da</strong> máquina, já que este é o único<br />
estágio a ler os registradores. Se a instrução que estiver no estágio de<br />
decodificação precisar de um operando que esteja sendo escrito no<br />
conjunto de registradores, não há problema, pois a implementação do<br />
NCE/UFRJ prevê leitura e escrita simultânea nos registradores. Se o <strong>da</strong>do<br />
necessário estiver no registrador de resultado <strong>da</strong> ALU, o controle fornece<br />
o <strong>da</strong>do através de um caminho especial de "bypass", direto <strong>da</strong> saí<strong>da</strong> <strong>da</strong><br />
ALU para os registradores do estágio de decodificação. Mesmo na<br />
definição <strong>da</strong> máquina com 5 estágios de "pipeline", este "bypass" sempre<br />
é possível. Desta maneira, os únicos casos de dependência do "pipeline"<br />
ocorrem quando o estágio de decodificação aguar<strong>da</strong> um <strong>da</strong>do que vai ser<br />
carregado em um registrador pela instrução de "load". Nestes casos, o<br />
"pipeline" é congelado até que o <strong>da</strong>do esteja sendo escrito no conjunto de<br />
registradores, quando então pode ser lido pelo estágio de decodificação.<br />
Pretendemos observar nas simulações os seguintes parâmetros:<br />
– Número total de ciclos executados.<br />
– Número total de instruções executa<strong>da</strong>s.<br />
– Ciclos/Instrução: número médio de ciclos para<br />
execução de uma instrução.<br />
– Número médio de janelas ativa<strong>da</strong>s.<br />
– Maior valor de janela ativa<strong>da</strong>.<br />
– Total de acessos a <strong>da</strong>dos e instruções, de usuário<br />
e supervisor.