o Semestre de 2009 Prof. Luis Allan K unzle http://www.inf.ufpr.br/kunzle MICO-v18-r0 27/04/2009 Microprocessador MICO Versao 18 Releases - Historico: r1 27/04/2009 primeira versao da especica cao Resumo Este projeto tem como objetivo fazer com que os alunos da disciplina de Projetos Digitais e Microprocessadores consolidem seus conhecimentos de sis- temas digitais atraves da implementa cao de um processador capaz de simular um subconjunto de instru coes MIPS reais, utilizando para isso o simulador Tkgate. 1 Introducao O projeto do MICO deste semestre distingue-se dos semestres anteriores por propor que os alunos passem por todas as etapas do projeto de um micro- processador, desde a identica cao do conjunto de instru coes necessario para a solu cao de um determinado problema ate a gera cao de uma estrutura de controle que permita a execu cao de um programa armazenado em mem oria. Tres etapas, detalhadas a seguir, comp oem o projeto do microprocessador. A implementa cao e simula cao deve ser realizada utilizando a ferramenta TkGate (http://www.tkgate.org). As equipes devem construir o datapath a partir dos m odulos e portas logicas disponveis no TkGate. 2 Primeira Fase: Projeto da ISA Os componentes pre-denidos da ISA para o MICO-v18 s ao os seguintes: 1. barramento de dados de 32 bits 2. barramento de endere cos de 32 bits 3. endere cos de E/S mapeados em mem oria 4. 32 registradores de proposito geral de 32 bits 5. ao menos 16 instru coes (algumas instru coes podem ter o mesmo opcode, mas modos diferentes) 6. sem restri coes quanto ao n umero de modos de endere camento 7. servi cos de interrup cao de hardware e software 8. suporte a pelo menos n umeros com sinal (em complemento de 2) e sem sinal 1 Nesta fase, o projeto deve conter todas as informa coes que um progra- mador necessita para escrever um programa no MICO-v18. A ISA proposta deve levar em considera cao as restri coes acima descritas e conter os seguintes elementos: Conjunto de Instru c oes: descrever com clareza as micro-opera coes de cada instru cao. Modo de Endere camento: como os dados s ao acessados em cada ins- tru cao. Formato da Instru cao: como cada instru cao e traduzida em codigo de m aquina. Registradores: como os registradores acessveis pelo usuario s ao denidos e usados. Processor Status Word ou C odigos de Condi cao: deni cao destes e quais instru coes podem afeta-los. Power-on reset: como a CPU reagir a quando o sinal de reset for recebido. A ISA proposta pela equipe deve minimamente conter os quatro grupos de instru coes descritos abaixo: Transferencia de Dados: permite que os dados sejam movidos entre re- gistradores e mem oria. Manipula cao de Dados: executa opera coes aritmeticas ou logicas nos da- dos (incluindo as de deslocamento). Transferencia de Controle: saltos ou desvios condicionais ou incondicio- nais. Instru c oes especiais: tais como NOP e set ou reset dos codigos de condi cao. O princpio da arquitetura RISC e tal que somente as instru coes frequente- mente usadas s ao implementadas pela CPU. A seguir ser ao apresentados tres problemas que devem ser resolvidos usando o MICO-v18. Escreva programas para resolver os tres problemas qualquer linguagem de programa cao. A se- guir, procure identicar um conjunto de 16 instru coes MIPS que seja capaz de resolver os tres problemas. Este conjunto compor a a ISA desta fase do projeto. Teste do Projeto da ISA Os problemas a seguir dever ao ser usados para validar o MICO-v18. No relat orio desta fase dever a constar os programas escritos usando as instru coes da ISA proposta. Problema 1: N umeros Primos (Manipulacao de Dados) Escreva um programa que encontre todos os n umeros primos entre 1 e 100. Coloque- os em uma lista na mem oria de dados. Para facilitar, busque um algoritmo eciente para encontrar n umeros primos antes de iniciar a escrita do programa. 2 Problema 2: Sort (Movimento de Dados e Controle de Trans- ferencia) Classique um conjunto de 10 strings em ordem decrescente. Cada string consiste de 4 caracteres ASCII de 8 bits e esta empacotado em uma palavra de 32 bits. Problema 3: Fatorial (Funcoes de E/S) Calcule o fatorial de um n umero fornecido via teclado, cuja sada ser a um display BCD. 3 Segunda Fase: Datapath . . . 4 Terceira Fase: Controle . . . 5 Procedimentos de Entrega Desenvolvimento do trabalho: O trabalho deve ser realizado indivi- dualmente ou pelas duplas. Datas de entrega: Primeira Fase (Projeto da ISA): 11 de Maio de 2.009 Segunda Fase (Datapath): Primeira Fase (Controle): Nao serao aceitos trabalhos fora do prazo. As entregas ser ao feitas por submiss ao eletr onica, via e-mail. Cabe aos alunos vericarem periodicamente, na home-page da disciplina, as atualiza coes neste documento. Cada trabalho entregue dever a corresponder a um arquivo com a seguinte denomina cao: MICO-v18-fase i-fulano beltrano.tar.gz, em que fulano e beltrano s ao os login name dos participantes no DINF. O conte udo do arquivo, empacotado com tar e comprimido com gzip, deve conter um di- ret orio com o mesmo nome do arquivo acima, sem a extensao .tar.gz. Ele deve conter, obrigatoriamente: o GRR, o nome completo e o e-mail de contato dos membros da equipe e a data; uma descri cao geral da ISA proposta; uma descri cao detalhada com todas as instru coes e seus formatos de ins- tru cao, as atribui coes de opcode, os modos de endere camento adotados, etc. Esta e a parte mais importante do relat orio desta fase. Procure na web os textos de referencia para CPUs ou micro-controladores comerciais e veja como s ao documentados seus conjuntos de instru coes. as hip oteses assumidas para a realiza cao do projeto (por exemplo, os endere cos de mem oria para E/S); 3 a listagem dos programas, comentados. Trabalhos incompletos nao serao avaliados. A criterio do professor da disciplina, um ou mais alunos(as) po- dem ser chamados a apresentar e defender qualquer etapa do pro- jeto. A nota do aluno(a) avaliado(a) sera a nota da equipe. 4