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 |
Implementação usado ArchC |
Renato Herebia – 10º. sem |
Thiago/Renato |
|
Implementação usado ArchC |
Lucas – 10º. sem |
Jaime/Rodrigo |
|
Simulador PTLSim |
Felipe – 8o. sem |
|
|
Implementação usado ArchC |
|
Crislaine/Bruno |
|
Implementação usado ArchC |
Aline, Felipe – 8º. sem |
Jairo |
|
Implementação usado ArchC |
Eric – 10º. sem |
Roberto/Kariston |
|
Implementação usado ArchC |
Vinícius – 10º. sem |
|
|
Implementação usado ArchC |
Thiago – 10º. sem |
Eugênio/Ezequiel |
|
Simulador Cell |
|
Jonathan/Diego |
|
Implementação usado ArchC |
|
|
|
Implementação VHDL do Proc. Sparc v8 |
|
|
Qual o Cronograma ?
27/08: Aula dedicada para desenvolvimento do trabalho. Cada grupo deve utilizar o horário da aula para desenvolver as atividades do trabalho. Ao final, cada grupo deverá fazer um relatório (1-2 página(s)) relatando as atividades realizadas.
24/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.
30/09: Aula dedicada para desenvolvimento do trabalho. O Professor estará em sala para retirar dúvidas e ajudar na definição dos recursos que devem ser implementados.
2910 e 04/11: Aula dedicada para desenvolvimento do trabalho. Cada grupo deve utilizar o horário da aula para desenvolver as atividades do trabalho. Ao final, cada grupo deverá fazer um relatório (1-2 página(s)) relatando as atividades realizadas. Nesse caso, cada grupo pode entregar apenas 1 relatório que valerá pelas 2 aulas.
05/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.
25/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
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?
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 12?
R: Não. A nota máxima é 10! Além disso, esses pontos não são cumulativos.