Trabalho Implementação Microprocessador+Otimizações de Compilador

Nesta página estão detalhados os procedimentos que devem ser seguidos para o desenvolvimento do Trabalho 1 da disciplina de Tópicos Avançados em Sistemas de Computação. Este trabalho será desenvolvido ao longo deste semestre letivo e constituirá parte da nota final da disciplina. É fortemente recomendado que os estudantes acessem com freqüencia esta página para: esclarecer possíveis dúvidas, estar ciente do cronograma, estar a par de possíveis atualizações/alterações no trabalho.

Objetivos: Implementar, utilizando a linguagem ArchC, um simulador para o processador escolhido conforme listagem a seguir. Definir e implementar otimizações de compilador compatíveis com as características do processador escolhido.



O que deve ser feito?

  1. Implementar a especificação (mais próxima possível do modelo completo) do processador em ArchC.

  2. Implementar o maior número de programas possível (pelo menos cinco programas: 1 instruções aritméticas, 1 instruções de memória, 1 instruções de desvio condicional, 1 loop, 1 instruções para chamadas a procedimentos) com exemplo que testam diferentes características do processador.

  3. Fornecer montador/linker para o processador.

  4. Escrever relatório (máximo de 10 páginas) relatando o que foi realizado no trabalho.

Sugestão de metodologia para desenvolvimento do trabalho


Listagem de arquiteturas de processadores disponíveis para implementação

Fabricante/Processador (links apontam para datasheet)

Atribuído para

Altera/NIOS

Renato

Fujitsu/FR

Vinícius

Hitachi/SuperH

Alker

Motorola/DSP56k

Thiago

PIC/18F

Gustavo

Sun/UltrasparcIII

Erick

Texas Instruments/TMS320C2xx

Rafael

Xilinx/Microblaze

Lucas



Qual o Cronograma ?

  1. Introdução.
  2. O Processador XXXX (processador escolhido).
  3. Modelagem do Processador Utilizando a Linguagem ArchC.
      3.1 Recursos Implementados.
3.2 Recursos Não-Implementados.
3.3 Bugs/Falhas Detectados e Não-Corrigidos.
3.4 Dificuldades Encontradas Durante o Desenvolvimento do Processador.
3.5 Experimentos com o Modelo em ArchC.
  1. Conclusões e Trabalhos Futuros.


Como será a avaliação?

Dicas/Sugestões

Perguntas frequentes:

P: Se faltar no dia do checkpoint, fica com 0?

R: Há duas possibilidades: 1) Se souber, previamente, que irá faltar em dia de checkpoint, a dupla deve avisar ao professor que irá agendar um horário anterior ao dia do checkpoint. 2) caso a falta seja devido a um imprevisto, a dupla deve procurar o professor e deve justificar a ausência e, após isso, o professor marcará um horário para a entrevista. Faltas sem justificativa, aí sim, terão 0 como nota do checkpoint.

P: Há possibilidade de adiar a entrega do trabalho por alguns dias?

R: Infelizmente, não. As datas de entrega estão no limite máximo aceitável. Trabalhos entregues fora do prazo correm o sério risco de não serem avaliados e, no melhor dos casos, serão avaliados mas os atrasos serão descontados no valor da nota.

P: O que devo privilegiar: implementar todo o conteúdo de uma etapa ou implementar todas as etapas?

R: Se não houver tempo hábil, é melhor implementar o mínimo necessário em uma etapa e partir para a próxima. A contribuição deste trabalho para vocês é justamente a experiência prática com relação a uma implementação de mais baixo nível dos processadores e de algoritmos para geração de código.

P: O que fazer em caso de dúvidas no entendimento do trabalho (recursos não disponíveis na linguagem ArchC, ausência de detalhes na atribuição das tarefas, etc.)?

R: Procure o professor o quanto antes: pessoalmente ou enviando mensagem eletrônica com subject: "Dúvidas: Trabalho1 – Tópicos Avançados". Nesse último caso, procure discorrer sucintamente a sua dúvida. Além disso, aproveite bem os encontros de checkpoint para retirar suas dúvidas, sugerir alterações na atribuição do trabalho, justificar suas escolhas. Isso contará na sua participação e dedicação do trabalho.

P: Como deve ser a saída do simulador?

R: O simulador que será entregue para avaliação não deverá ``fugir'' do formato de saída padrão do ArchC. É importante seguir a risca essa recomendação para que a avaliação de todos os trabalhos seja a mais coerente possível.

P: Há algum formato específico para as avaliações que farei dos trabalhos e apresentações de meus colegas?

R: Não. Como sugestão de organização sugiro que dedique uma página para cada trabalho avaliado. Nessa página, indique: nome do aluno, trabalho: pontos positivos, trabalho: pontos negativos, apresentação: comentários, nota final.

P: Serei avaliado pelas minhas avaliações?

R: Uma vez observado todos os prazos que temos, os resultados das suas avaliações não farão parte do cômputo da sua nota. Na verdade, a pontualidade, a participação e o detalhamento das avaliações entrarão como bônus.

P: O que apresentarei no dia 24/06 ?

R: O foco da apresentação será a implementação que você fez. No entanto, primeiramente, não esqueça de explicar a arquitetura.

P: Como saber que versão atribuir à minha implementação do simulador?

R:

Models Road Map

Version

Development Stage

Benchmark

Certifies that ...

0.0.x

Writing AC_ISA and AC_ARCH description

0.1.0

AC_ARCH and AC_ISA declarations finished

All instructions are correctly decoded

0.2.0

Instruction behavior description finished

Individual behaviors are working properly

0.3.0

AC_ARCH and AC_ISA completed

ACStone benchmark

All programs passed successfully

0.4.0

ABI design finished

Individual system calls are working properly

0.5.0

Model description completed

Mediabench

All selected programs passed successfully

0.6.0

Testing ...

MiBench
(small version)

All selected programs passed successfully

0.7.0

Testing ...

MiBench
(large version)

All selected programs passed successfully

1.0.0

Final Test

SPEC 2000

All selected programs passed successfully



P: Se obter nota máxima em todos os itens da avaliação ficarei com 11.5?

R: Não. A nota máxima é 10! Além disso, esses pontos não são cumulativos.