Trabalho Implementação Microprocessador

Nesta página estão detalhados os procedimentos que devem ser seguidos para o desenvolvimento do Trabalho 1 da disciplina de Arquitetura de Computadores II. Este trabalho será desenvolvido ao longo do 2o. Bimestre 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, em duplas  (ou individualmente) um modelo de Processador conforme Tabela 1 apresentada a seguir.

Tabela 1: Listagem de arquiteturas de processadores/microcontroladores/dsp disponíveis

Obs: Sugestão de outros processadores também são aceitas. Favor consultar o Professor.

Fabricante/Processador

Atividade

Contato

Grupo

Altera/NIOS

Implementação usado ArchC

Thiago/Renato 8o. Sem


Xilinx/Microblaze

Implementação usado ArchC

Jaime/Rodrigo 8o. Sem


ARM9TDMI/ ISA

Implementação usado ArchC

Aline/Felipe 10o. Sem



Qual o Cronograma ?

19/08: Aula dedicada para desenvolvimento do trabalho. Cada grupo deve utilizar o horário da aula para desenvolver as atividades do trabalho.

14/09: 1º. Checkpoint. Todos os grupos serão avaliados quanto ao andamento do trabalho no que se refere à definição dos recursos a serem implementados e quanto foi especificado das instruções , registradores, pipelines e comportamentos.

04/11: 2º. Checkpoint. Todos os grupos serão avaliados quanto ao andamento do trabalho no que se refere à implementação do comportamento das instruções e arquivos de testbench.

18/11 e 23/11: Aula dedicada para desenvolvimento do trabalho. Cada grupo deve utilizar o horário da aula para desenvolver as atividades do trabalho.

30/11: Entrega do Trabalho. Cada grupo passará por uma entrevista com o professor que fará perguntas e pedirá explicações sobre o andamento do trabalho. Enviar o código fonte da ferramenta, o respectivo arquivo executável e programas de exemplo para execução.

 

O que deve ser feito?

1.      Implementar a especificação (mais próxima possível do modelo completo) do processador em ArchC. Se for o caso, estudar um simulador e saber todos os recursos que implementa.

2.      Implementar, pelo menos, cinco programas (1 instruções aritméticas, 1 instruções de memória, 1 instruções de desvio condicional (sem loop), 1 loop, 1 instruções para chamadas a procedimentos) exemplo que testam diferentes características do processador.

3.      Fornecer montador/linker para o processador. BÔNUS de 2,0 pontos

  1. Escrever artigo (máximo de 10 páginas) relatando o que foi realizado no trabalho. Seguir esse modelo (modelos para publicação de artigos). O artigo deve apresentar os assuntos na seguinte ordem: Introdução, Arquitetura do Processador/Microcontrolador/DSP em estudo. Recursos implementados utilizando ArchC. Experimentos e Resultados. Considerações finais.

Sugestão de metodologia para desenvolvimento do trabalho

·         Trabalho em grupo, mas com forte viés colaborativo.

·         Entendimento da arquitetura de processador/microcontrolador em estudo.

·         Determinação e implementação dos recursos da arquitetura e do conjunto de instruções conforme datasheet. No caso do simulador, estudo sobre todos os recursos disponíveis no simulador.

·         Implementação comportamental das instruções.

·         Testes de correção/desempenho da arquitetura

·         Definição/Configuração de um montador+linker para o processador

 

Como será a avaliação?

·         NAPC - A avaliação também constará das avaliações parciais dos checkpoints (cada checkpoint terá peso 1).

·         NP - A nota do professor para o artigo entregue terá peso 3.

·         NF - A avaliação final de todo o trabalho de acordo com a abrangência e versão alcançada, conforme tabela abaixo, (peso 4);

·         NB - Bônus (peso 2): 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 do 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: As notas serão as mesmas para os componentes da dupla?

R: Não. As entrevistas serão com a dupla mas a nota é individual. O fato de um membro da dupla faltar em dia de checkpoint não implica que a entrevista será cancelada. Por isso, é extremamente importante que ambos dividam o trabalho e, continuamente, atualizem-se quanto ao desenvolvimento do mesmo.

P: Estou tendo problemas com o outro componente da dupla. O que devo fazer?

R: Uma das motivações desta tarefa é justamente melhorar a habilidade de trabalho em grupo. Nesse sentido, a dupla deve conversar bastante, procurando resolver todos os conflitos que porventura possam surgir. Saber ouvir opiniões, discutir idéias educadamente, ceder sobre pontos de vistas e dividir tarefas é o que aprendemos de melhor em um trabalho em grupo. Certamente, cada membro pode contribuir positivamente  para a nota do outro colega da dupla. Mas,  caso um dos membros "desista" do trabalho, o outro membro pode continuar a implementação que o trabalho será avaliado levando isso em consideração.

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 12?

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