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?
Implementar a especificação (mais próxima possível do modelo completo) do processador em ArchC.
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.
Fornecer montador/linker para o processador.
Escrever relatório (máximo de 10 páginas) relatando o que foi realizado no trabalho.
Sugestão de metodologia para desenvolvimento do trabalho
Trabalho individual mas com forte viés colaborativo.
Entendimento da arquitetura escolhida.
Determinação e implementação dos recursos da arquitetura e do conjunto de instruções.
Implementação comportamental das instruções.
Testes de correção/desempenho da arquitetura.
Definição/Configuração de um montador+linker para o processador.
Definição de algoritmos para geração de código/otimizações de código e/ou implementação desses algoritmos.
Listagem de arquiteturas de processadores disponíveis
para implementação
Fabricante/Processador (links apontam para datasheet) |
Atribuído para |
Renato |
|
Vinícius |
|
Alker |
|
Thiago |
|
Gustavo |
|
Erick |
|
Rafael |
|
Lucas |
Qual o Cronograma ?
26/02: Início do trabalho – Apresentação das diretrizes e opções de processadores
04/02: Prazo máximo para definição da arquitetura/processador a ser modelado.
30/04: 1o. Checkpoint: O horário da aula será dedicado para entrevistas/esclarecimentos de dúvidas com cada estudante sobre o andamento do trabalho. É esperado que cada estudante apresente a versão inicial da implementação da arquitetura, definições dos formatos das instruções, registradores de pipeline e início da implementação do comportamento das instruções
20/05: 2o. Checkpoint: É esperado que cada estudante tenha finalizado a implementação do comportamento das instruções e apresente programas que utilizam os recursos (instruções) já implementados. Também será averiguado as definições já realizadas sobre a parte de geração de código
04/06: 3o. Checkpoint: Cada estudante deve apresentar a situação atual do trabalho: situação do simulador e ferramenta para geração/otimização de código
18/06: Envio para o e-mail do Professor e entrega de relatório impresso com, não mais que 8 páginas, contendo as seguintes seções :
Introdução.
O Processador XXXX (processador escolhido).
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.
Conclusões e Trabalhos Futuros.
Enviar o código fonte da ferramenta, o respectivo arquivo executável e programas de exemplo para execução.
24/06: Apresentação: cada estudante terá 15 minutos para apresentar seu trabalho.
Até 25/06 - 11:00hs: Envio de mensagem, para o e-mail do Professor, com título: “Avaliações: Tópicos Avançados”. Essa mensagem deve conter as avaliações dos trabalhos dos demais estudantes.
Como será a avaliação?
Os relatórios entregues serão avaliados pelo professor e pelos demais colegas que também devem ler o relatório e assistir a apresentação.
Além disso, a avaliação também constará das avaliações parciais dos checkpoints (cada checkpoint terá peso 1).
Será feita uma média entre as notas dadas pelos demais colegas e, a essa média será atribuido peso 1.5.
A nota do professor para o relatório e apresentação também terá peso 1.5.
A avaliação final de todo o trabalho de acordo com a abrangência e versão alcançada (peso 4);
Bônus (peso 1.5): versão alcançada pelo simulador, organização e documentação do código, arquivo README, scripts para configuração e execução, clareza na explicação do relatório;
Dicas/Sugestões
Procure estudar a implementação dos modelos implementados e disponíveis na página da linguagem ArchC.
Inicie o trabalho o quanto antes. O tempo voa!
Documente o código. Isso ajudará a relembrar o que estava sendo feito no dia anterior e, principalmente, depurar o código em caso de bugs.
Retire as dúvidas quanto ao entendimento da sintaxe antes de implementá-la. Isso permitirá que a etapa de implementação não seja interrompida.
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?
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 |
All selected programs passed successfully |
|
0.6.0 |
Testing ... |
MiBench |
All selected programs passed successfully |
0.7.0 |
Testing ... |
MiBench |
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.