Skip to content

rhbrunetto/Tomasulo

Repository files navigation

Simulador de Processador com Algoritmo de Tomasulo (GSIM)

Este trabalho foi desenvolvido para a disciplina de Arquitetura e Organização de Computadores II (Ciência da Computação - UEM) em Julho/2017 por Ricardo Henrique Brunetto ([email protected])

Funcionalidade

Dado um arquivo de entrada em assembly MIPS, o simulador o executa e permite que o usuário faça uso dos comandos:

  • stats: Mostra o status do processador no momento da execução.
  • print memory: Mostra a memória RAM.
  • run: Inicia o processamento.
  • -d: Mostra o processador a cada ciclo de clock [Estacoes de Reserva, Banco de Registradores e Fila de Instruções].
  • show config: Mostra as configurações atuais do GSIM (instruções reconhecidas e quantidades de Estacoes de Reserva).
  • instr help: Mostra um menu para detalhes de uma instrução especifica.
  • clear: Limpa o terminal.
  • help: Exibe ajuda.
  • quit: Encerra o GSIM. Inicialmente, o pulso de clock se emite a cada [ENTER]. O comando continue finaliza o processamento (ciclo continuo)..

Especificações Tecnológicas

Todo o programa foi escrito em C. O makefile local pode ser perfeitamente utilizado, visto que não há dependências externas que requeiram complexidade.

Implementação

[Em construção...]

Lista de Afazeres

  • Iniciar Processador
    • Função de Decodificação
  • MakeFile
    • Integrar Tradutor
  • Alterações do Tradutor
    • Não permitir escrever no registrador ZERO
    • Manipulação de inteiros com bit-shift
    • Uso da estrutura de definição
  • Implementar cache
  • Implementar clock
  • Implementar barramentos
    • Implementar fila para o CDB
  • Implementar ULA
    • Integrar com a Estação de Reserva
  • Implementar despacho de instruções
  • Vetores sendo inseridos ao inverso
  • Reconhecer números negativos

Limitações e Sugestões

  • Não fora implementado o componente de cache. Segue como sugestão para trabalhos futuros.
  • Não há um relatório com documentação formal ou análises. Segue como sugestões para trabalhos futuros.

Licença

Este projeto segue a licença Creative Commons Attribution-ShareAlike (BY-SA), que está detalhada no arquivo LICENSE.md.

O ato de copiar este conteúdo para quaisquer fins sem seguir esta licença é passível de processo jurídico (e reprovação, caso você use para trabalho).