14.03.2015 Views

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 ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!