UNIVERSIDADE FEDERAL DE MINAS GERAIS \\ INSTITUTO DE CIÊNCIAS EXATAS \\ DEPARTAMENTO DE CIêNCIA DA COMPUTAÇÃO \\ Programa de Residência em Tecnologia da Informação para Google \\ Disciplina: Arquitetura de Computadores \\ 1o. Semestre de 2007 \\ Professor: Mario Fernando Montenegro Campos (mario@dcc.ufmg.br)\\ Monitor: Antônio Celso Caldeira Júnior (caldeira.dcc.ufmg.br)\\ Data da entrega: 28.03.07 \\ Data da devolução: 16.04.07\\ ====== Trabalho Prático 1 ====== Observações: - Grupos de três alunos Especificação: - O primeiro trabalho consiste na implementação funcional multiciclo do microprocessador uRISC. Deve-se entregar o código munido de instruções para compilação/execução do programa e a documentação. - A especificação e o conjunto de instruções do processador uRISC pode ser encontrada em {{:cursos:arquitetura:2007-1:urisc.html|uRISC}}. A implementação deve ser feita utilizando a linguagem C++. - Os testes disponibilizados em {{:cursos:arquitetura:2007-1:arquivos_teste.tar.gz|Testes}} serão utilizados para avaliar a implementação e, portanto, devem ser utilizados como base para a implementação de outros possíveis testes. - A documentação deve conter os itens citados abaixo, não se limitando, entretanto, a eles: * introdução ao assunto do trabalho * descrição da implementação * decisões de implementação e razões para elas * datapath da implementação * testes realizados * conclusões __Atualização__ Montador do {{:cursos:arquitetura:2007-1:montador.tar.gz|μRISC}}. - Pre-requisitos * Todas as intruções no arquivo de entrada devem estar presentes dentre as 32 do uRISC e que não há erros de sintaxe, caso contrário elas serão ignoradas. * Haverá somente uma instrução por linha * Na linha em que for declarado um LABEL não haverá nenhuma outra instrução ( mesmo caso para .global ) * Os registradores devem ser identificados como r0, r1, r2, r3, r4, r5, r6 ou r7 - Instruções de uso * make (compilar) * make run (executar utilizando o arquivo teste61.asm e colocando a saída em saida.txt * ./monte -e [arquivo_de_entrada] -s [arquivo_de_saida] (executar com entrada e saída indicadas)