19
Arquitetura de Computadores
FAFIBE
34
Arquitetura de Computadores
UFF
1
Arquitetura de Computadores
UFF
7
Arquitetura de Computadores
FAFIBE
58
Arquitetura de Computadores
UFRN
2
Arquitetura de Computadores
UFF
31
Arquitetura de Computadores
UFF
12
Arquitetura de Computadores
UFRN
1
Arquitetura de Computadores
CEUN-IMT
2
Arquitetura de Computadores
UFMG
Texto de pré-visualização
Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Trabalho 1 Simulador do MIPS Professor Rodrigo Kishi 1 Objetivo Este trabalho tem como objetivo a construcao de um simulador do processador baseado no MIPS monociclo de 32 bits visto em sala O simulador tera como entrada um programa que sera carregado na memoria de instrucoes e uma imagem da memoria que sera carregada na memoria de dados O simulador deve ser capaz de executar o programa contido na memoria de instrucoes utilizando os dados carregados na memoria de dados 2 Metodologia O trabalho devera ser desenvolvido na ferramenta de codigo aberto Logisim disponıvel para download em httpsourceforgenetprojectscircuit Os seguintes componentes devem ser implementados ULA de 1 bit que realiza AND OR slt e ULA de 32 bits que realiza AND OR slt e Unidade de controle da ULA Unidade de controle da via de dados monociclo Via de dados monociclo Apos implementar os componentes eles devem ser integrados a via de dados para compor o proces sador Um sinal de clock deve ser adicionado na conexao adequada do registrador PC para sincronizar a execucao das instrucoes O conjunto de instrucoes que deve ser suportado deve incluir as instrucoes lw sw add sub and or slt e beq Esta disponıvel na secao da disciplina de Arquitetura de Computadores I do Ambiente Virtual de Aprendizagem da UFMS AVAUFMS um arquivo com o tıtulo componenteszip que contem os cir cuitos para o banco de registradores memoria de instrucoes e memoria de dados Os arquivos contidos no componenteszip sao memoriacirc memorias de instrucoes e de dados registradorescirc banco de registradores e outroscomponentescirc componentes utilizados na implementacao das memorias e do banco de registradores Estes circuitos sao consistentes com os vistos em sala e uma demonstracao de suas conexoes pode ser vista na Figura 1 Address 32 bits Read Data 32 bits Write Data 32 bits Write Enable 1 bit Read Enable 1 bit Read Data 1 32 bits Read Data 2 32 bits Read Register 1 5 bits Read Register 2 5 bits Write Register 5 bits Write Data 32 bits Write Enable 1 bit Read Address 32 bits Instruction 32 bits Banco de Registradores Memória de Dados Memória de Instruções Figura 1 Ilustracao das entradas e saıdas do componentes disponibilizados para o desenvolvimento do trabalho Arquitetura de Computadores I Pagina 1 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Os arquivos de componentes disponibilizados podem ser carregados como bibliotecas pelo co mando Projeto Carregar Biblioteca Biblioteca do Logisim Nao e necessaria qualquer modificacao aos componentes providos para o desenvolvimento do trabalho Observe que e possıvel criar bibliotecas com os componentes que forem desenvolvidos pelo usuario facilitando a modularizacao do projeto 3 Testes Esta disponıvel tambem na secao da disciplina de Arquitetura de Computadores I do AVAUFMS um arquivo com o tıtulo testeszip que contem arquivos de teste de dois programas para o simulador Os arquivos contidos em testeszip sao prog1txt contem o codigo binario do primeiro programa de teste do simulador mem1txt contem dados para a memoria de dados do primeiro programa de teste do simulador prog2txt contem o codigo binario do segundo programa de teste do simulador mem2txt contem dados para a memoria de dados do segundo programa de teste do simulador 31 Como testar Para carregar instrucoes ou dados em uma memoria do processador seja ela de instrucoes ou de dados devese acessar a sua implementacao Para isso e necessario clicar com o botao direito do mouse sobre ela e escolher a opcao Ver nome da memoriacomo exemplificado na Figura 2 Figura 2 Acessando a implementacao da memoria de instrucoes Ao acessar a implementacao da memoria havera um componente central de memoria RAM E la onde os dados devem ser carregados Devese clicar com o botao direito do mouse sobre ele e escolher a opcao Carregar imagem como exemplificado na Figura 3 Figura 3 Carregando uma imagem de memoria em uma memoria RAM Apos carregar os dados a memoria RAM deve ter sido atualizada para um estado semelhante ao ilustrado na Figura 4 Na Figura 4 foram carregados as instrucoes do arquivo prog1txt Arquitetura de Computadores I Pagina 2 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Figura 4 Estado da memoria de instrucoes apos a carga do programa do arquivo prog1txt Ao final e necessario voltar a visualizacao da implementacao do processador Assumindo que o registrador PC comeca contando em 0 o programa sera executado logo que o clock seja iniciado Uma frequˆencia de clock lenta pode ser escolhida 1Hz ou menos para facilitar o acompanhamento da execucao clicando em SimularFrequencia de pulso A contagem do clock e iniciada clicando em SimularPulso Habilitado Como nao ha uma instrucao de parada os programas dena teste contem um laco infinito em seu final que nao realiza qualquer acao e que desvia para o proprio en dereco Dessa forma quando o registrador PC comecar a receber um mesmo valor repetidamente a execucao do programa pode ser terminada clicando em SimularPulso Habilitadonovamente O resultado do programa e escrito na memoria de dados de acordo com o programa executado Podese analisar a memoria RAM na memoria de dados para verificar se o resultado correto foi escrito nela Para reiniciar os dados ou carregar um novo programa nas memorias do simulador utilizase a opcao SimularDesabilitar Simulacao 32 Descricao dos programas de teste Nos programas de teste os nomes dos registradores nao sao utilizados como visto em sala mas refe renciados por r0 r1 r2 r31 onde o numero apos o r e o endereco do registrador dentro do banco de registradores Outro detalhe nao ha rotulos nas instrucoes de desvio mas enderecos de memoria ou deslocamentos diretos ja que o trabalho de traducao dos rotulos em enderecos deveria ser feito no processo de compilacao do programa 321 Programa 1 Soma valores do intervalo Este programa soma todos os valores entre A e B inclusive onde A e o dado contido na posicao 4 da memoria de dados e B e o dado contido na posicao 8 da memoria de dados O resultado e gravado na posicao 0 da memoria de dados Como nao ha uma instrucao de parada no processador implementado o programa apos computar o resultado entra em um loop infinito ate que o clock seja desabilitado O Programa 1 e o seguinte 1 sub r0r0r0 atribui 0 a reg0 para ser usado como base 2 lw r10r0 reg1 mem0 1 3 lw r24r0 reg2 mem4 A 4 lw r38r0 reg3 mem8 B 5 sub r4r4r4 reg4 0 acumulador da soma 6 add r4r2r4 reg4 reg4 A 7 slt r5r2r3 reg5 A B 8 beq r5r02 se reg5 falso avance duas instrucoes 9 add r2r1r2 A A 1 10 beq r0r05 volte 5 instrucoes 11 sw r40r0 mem0 reg4 12 beq r0r01 o programa acabou desvia para o proprio endereco loop infinito Arquitetura de Computadores I Pagina 3 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I O codigo de maquina do Programa 1 em hexadecimal e o seguinte 1 00000022 2 8c010000 3 8c020004 4 8c030008 5 00842022 6 00822020 7 0043282a 8 10a00002 9 00411020 10 1000fffb 11 ac040000 12 1000ffff Na configuracao inicial da memoria de dados devemos colocar os seguintes valores Posicao 0 1 Posicao 4 1 Posicao 8 a hexadecimal note que a e o 10 decimal A configuracao inicial da memoria de dados do Programa 1 em hexadecimal e a seguinte 1 00000001 2 00000001 3 0000000a O programa deve entao computar a soma dos numeros de 1 a 10 inclusive Ao final do programa quando ele entrar no loop final o resultado deve ser o valor 37 em hexadecimal 55 em decimal gravado na posicao 0 da memoria de dados 322 Programa 2 Efetua AND e OR Este programa testa as operacoes de and e or do processador e tambem o funcionamento do en derecamento usando deslocamentos de um registrador base O programa inicia com duas variaveis A e B e faz o seguinte Computa A and B e grava o resultado na posicao 4 da memoria de dados Computa A or B e grava o resultado na posicao 8 da memoria de dados Inicialmente a memoria de dados e a seguinte Posicao 0 14 hexadecimal 20 decimal Posicao 20 variavel A Posicao 24 variavel B Para este exemplo vamos atribuir a A e B os seguintes valores A 430a1f9b hexadecimal B 728cd2e3 hexadecimal Arquitetura de Computadores I Pagina 4 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I O Programa 2 e o seguinte 1 sub r0r0r0 atribui 0 a reg0 2 lw r10r0 reg1 mem0 20 3 lw r20r1 reg2 mem20 4 lw r34r1 reg3 mem24 5 and r4r2r3 reg4 reg2 AND reg3 6 or r5r2r3 reg5 reg2 OR reg3 7 sw r44r0 mem4 reg4 8 sw r58r0 mem8 reg5 9 beq r0r01 o programa acabou desvia para o proprio endereco loop infinito O codigo de maquina do Programa 2 em hexadecimal e o seguinte 1 00000022 2 8c010000 3 8c220000 4 8c230004 5 00432024 6 00432825 7 ac040004 8 ac050008 9 1000ffff A configuracao inicial da memoria de dados do Programa 2 em hexadecimal e a seguinte 1 00000014 2 00000000 3 00000000 4 00000000 5 00000000 6 430a1f9b 7 728cd2e3 4 Regras O Trabalho 1 devera ser desenvolvido em grupos de 2 alunos Os grupos devem ser definidos e ter os nomes de seus integrantes informados ao professor via AVA ate o dia 19092024 Caso algum aluno nao informe seu grupo ate a data estipulada sera atribuıdo a um grupo pelo professor Em caso de quantidadeımpar de alunos sera permitido um grupo com um aluno que sera definido pelo professor A data da entrega e 31102024 A entrega devera ser feita pelo ambiente AVAUFMS enviando um arquivo compactado em formato zip ou targz contendo os arquivos fonte do projeto Nao envie os arquivos disponi bilizados pelo professor para a construcao do processador memoriacirc prog1txt etc ou Arquitetura de Computadores I Pagina 5 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I qualquer outro tipo de arquivo nao relacionado ao trabalho Nao se esqueca de enviar eventuais arquivos de bibliotecas que o grupo criar O arquivo compactado deve conter um arquivo texto com o nome grupotxt com os nomes dos alunos do grupo e os respectivos RGAs O envio deve conter somente os arquivos requisitados neste documento Cada grupo deve entregar alem do arquivo compactado contendo os arquivosfonte do trabalho um relatorio escrito a mao ou impresso de ate 5 cinco paginas descrevendo os passos detalhes e atribuicoes de cada integrante duranteo processo de desenvolvimento do trabalho Este relatorio deve ser entregue ate o dia 31102024 Caso seja necessario pode ser agendada uma entrevista com os integrantes do grupo O nao atendimento a qualquer uma das regras citadas pratica de copia plagio ou qualquer outra pratica que represente uma tentativa de obter nota sem efetivamente colaborar no desen volvimento do trabalho ou por meios desonestos pode implicar na atribuicao da nota 0 zero a qualquer um ou a ambos os candidatos do grupo Arquitetura de Computadores I Pagina 6
19
Arquitetura de Computadores
FAFIBE
34
Arquitetura de Computadores
UFF
1
Arquitetura de Computadores
UFF
7
Arquitetura de Computadores
FAFIBE
58
Arquitetura de Computadores
UFRN
2
Arquitetura de Computadores
UFF
31
Arquitetura de Computadores
UFF
12
Arquitetura de Computadores
UFRN
1
Arquitetura de Computadores
CEUN-IMT
2
Arquitetura de Computadores
UFMG
Texto de pré-visualização
Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Trabalho 1 Simulador do MIPS Professor Rodrigo Kishi 1 Objetivo Este trabalho tem como objetivo a construcao de um simulador do processador baseado no MIPS monociclo de 32 bits visto em sala O simulador tera como entrada um programa que sera carregado na memoria de instrucoes e uma imagem da memoria que sera carregada na memoria de dados O simulador deve ser capaz de executar o programa contido na memoria de instrucoes utilizando os dados carregados na memoria de dados 2 Metodologia O trabalho devera ser desenvolvido na ferramenta de codigo aberto Logisim disponıvel para download em httpsourceforgenetprojectscircuit Os seguintes componentes devem ser implementados ULA de 1 bit que realiza AND OR slt e ULA de 32 bits que realiza AND OR slt e Unidade de controle da ULA Unidade de controle da via de dados monociclo Via de dados monociclo Apos implementar os componentes eles devem ser integrados a via de dados para compor o proces sador Um sinal de clock deve ser adicionado na conexao adequada do registrador PC para sincronizar a execucao das instrucoes O conjunto de instrucoes que deve ser suportado deve incluir as instrucoes lw sw add sub and or slt e beq Esta disponıvel na secao da disciplina de Arquitetura de Computadores I do Ambiente Virtual de Aprendizagem da UFMS AVAUFMS um arquivo com o tıtulo componenteszip que contem os cir cuitos para o banco de registradores memoria de instrucoes e memoria de dados Os arquivos contidos no componenteszip sao memoriacirc memorias de instrucoes e de dados registradorescirc banco de registradores e outroscomponentescirc componentes utilizados na implementacao das memorias e do banco de registradores Estes circuitos sao consistentes com os vistos em sala e uma demonstracao de suas conexoes pode ser vista na Figura 1 Address 32 bits Read Data 32 bits Write Data 32 bits Write Enable 1 bit Read Enable 1 bit Read Data 1 32 bits Read Data 2 32 bits Read Register 1 5 bits Read Register 2 5 bits Write Register 5 bits Write Data 32 bits Write Enable 1 bit Read Address 32 bits Instruction 32 bits Banco de Registradores Memória de Dados Memória de Instruções Figura 1 Ilustracao das entradas e saıdas do componentes disponibilizados para o desenvolvimento do trabalho Arquitetura de Computadores I Pagina 1 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Os arquivos de componentes disponibilizados podem ser carregados como bibliotecas pelo co mando Projeto Carregar Biblioteca Biblioteca do Logisim Nao e necessaria qualquer modificacao aos componentes providos para o desenvolvimento do trabalho Observe que e possıvel criar bibliotecas com os componentes que forem desenvolvidos pelo usuario facilitando a modularizacao do projeto 3 Testes Esta disponıvel tambem na secao da disciplina de Arquitetura de Computadores I do AVAUFMS um arquivo com o tıtulo testeszip que contem arquivos de teste de dois programas para o simulador Os arquivos contidos em testeszip sao prog1txt contem o codigo binario do primeiro programa de teste do simulador mem1txt contem dados para a memoria de dados do primeiro programa de teste do simulador prog2txt contem o codigo binario do segundo programa de teste do simulador mem2txt contem dados para a memoria de dados do segundo programa de teste do simulador 31 Como testar Para carregar instrucoes ou dados em uma memoria do processador seja ela de instrucoes ou de dados devese acessar a sua implementacao Para isso e necessario clicar com o botao direito do mouse sobre ela e escolher a opcao Ver nome da memoriacomo exemplificado na Figura 2 Figura 2 Acessando a implementacao da memoria de instrucoes Ao acessar a implementacao da memoria havera um componente central de memoria RAM E la onde os dados devem ser carregados Devese clicar com o botao direito do mouse sobre ele e escolher a opcao Carregar imagem como exemplificado na Figura 3 Figura 3 Carregando uma imagem de memoria em uma memoria RAM Apos carregar os dados a memoria RAM deve ter sido atualizada para um estado semelhante ao ilustrado na Figura 4 Na Figura 4 foram carregados as instrucoes do arquivo prog1txt Arquitetura de Computadores I Pagina 2 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I Figura 4 Estado da memoria de instrucoes apos a carga do programa do arquivo prog1txt Ao final e necessario voltar a visualizacao da implementacao do processador Assumindo que o registrador PC comeca contando em 0 o programa sera executado logo que o clock seja iniciado Uma frequˆencia de clock lenta pode ser escolhida 1Hz ou menos para facilitar o acompanhamento da execucao clicando em SimularFrequencia de pulso A contagem do clock e iniciada clicando em SimularPulso Habilitado Como nao ha uma instrucao de parada os programas dena teste contem um laco infinito em seu final que nao realiza qualquer acao e que desvia para o proprio en dereco Dessa forma quando o registrador PC comecar a receber um mesmo valor repetidamente a execucao do programa pode ser terminada clicando em SimularPulso Habilitadonovamente O resultado do programa e escrito na memoria de dados de acordo com o programa executado Podese analisar a memoria RAM na memoria de dados para verificar se o resultado correto foi escrito nela Para reiniciar os dados ou carregar um novo programa nas memorias do simulador utilizase a opcao SimularDesabilitar Simulacao 32 Descricao dos programas de teste Nos programas de teste os nomes dos registradores nao sao utilizados como visto em sala mas refe renciados por r0 r1 r2 r31 onde o numero apos o r e o endereco do registrador dentro do banco de registradores Outro detalhe nao ha rotulos nas instrucoes de desvio mas enderecos de memoria ou deslocamentos diretos ja que o trabalho de traducao dos rotulos em enderecos deveria ser feito no processo de compilacao do programa 321 Programa 1 Soma valores do intervalo Este programa soma todos os valores entre A e B inclusive onde A e o dado contido na posicao 4 da memoria de dados e B e o dado contido na posicao 8 da memoria de dados O resultado e gravado na posicao 0 da memoria de dados Como nao ha uma instrucao de parada no processador implementado o programa apos computar o resultado entra em um loop infinito ate que o clock seja desabilitado O Programa 1 e o seguinte 1 sub r0r0r0 atribui 0 a reg0 para ser usado como base 2 lw r10r0 reg1 mem0 1 3 lw r24r0 reg2 mem4 A 4 lw r38r0 reg3 mem8 B 5 sub r4r4r4 reg4 0 acumulador da soma 6 add r4r2r4 reg4 reg4 A 7 slt r5r2r3 reg5 A B 8 beq r5r02 se reg5 falso avance duas instrucoes 9 add r2r1r2 A A 1 10 beq r0r05 volte 5 instrucoes 11 sw r40r0 mem0 reg4 12 beq r0r01 o programa acabou desvia para o proprio endereco loop infinito Arquitetura de Computadores I Pagina 3 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I O codigo de maquina do Programa 1 em hexadecimal e o seguinte 1 00000022 2 8c010000 3 8c020004 4 8c030008 5 00842022 6 00822020 7 0043282a 8 10a00002 9 00411020 10 1000fffb 11 ac040000 12 1000ffff Na configuracao inicial da memoria de dados devemos colocar os seguintes valores Posicao 0 1 Posicao 4 1 Posicao 8 a hexadecimal note que a e o 10 decimal A configuracao inicial da memoria de dados do Programa 1 em hexadecimal e a seguinte 1 00000001 2 00000001 3 0000000a O programa deve entao computar a soma dos numeros de 1 a 10 inclusive Ao final do programa quando ele entrar no loop final o resultado deve ser o valor 37 em hexadecimal 55 em decimal gravado na posicao 0 da memoria de dados 322 Programa 2 Efetua AND e OR Este programa testa as operacoes de and e or do processador e tambem o funcionamento do en derecamento usando deslocamentos de um registrador base O programa inicia com duas variaveis A e B e faz o seguinte Computa A and B e grava o resultado na posicao 4 da memoria de dados Computa A or B e grava o resultado na posicao 8 da memoria de dados Inicialmente a memoria de dados e a seguinte Posicao 0 14 hexadecimal 20 decimal Posicao 20 variavel A Posicao 24 variavel B Para este exemplo vamos atribuir a A e B os seguintes valores A 430a1f9b hexadecimal B 728cd2e3 hexadecimal Arquitetura de Computadores I Pagina 4 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I O Programa 2 e o seguinte 1 sub r0r0r0 atribui 0 a reg0 2 lw r10r0 reg1 mem0 20 3 lw r20r1 reg2 mem20 4 lw r34r1 reg3 mem24 5 and r4r2r3 reg4 reg2 AND reg3 6 or r5r2r3 reg5 reg2 OR reg3 7 sw r44r0 mem4 reg4 8 sw r58r0 mem8 reg5 9 beq r0r01 o programa acabou desvia para o proprio endereco loop infinito O codigo de maquina do Programa 2 em hexadecimal e o seguinte 1 00000022 2 8c010000 3 8c220000 4 8c230004 5 00432024 6 00432825 7 ac040004 8 ac050008 9 1000ffff A configuracao inicial da memoria de dados do Programa 2 em hexadecimal e a seguinte 1 00000014 2 00000000 3 00000000 4 00000000 5 00000000 6 430a1f9b 7 728cd2e3 4 Regras O Trabalho 1 devera ser desenvolvido em grupos de 2 alunos Os grupos devem ser definidos e ter os nomes de seus integrantes informados ao professor via AVA ate o dia 19092024 Caso algum aluno nao informe seu grupo ate a data estipulada sera atribuıdo a um grupo pelo professor Em caso de quantidadeımpar de alunos sera permitido um grupo com um aluno que sera definido pelo professor A data da entrega e 31102024 A entrega devera ser feita pelo ambiente AVAUFMS enviando um arquivo compactado em formato zip ou targz contendo os arquivos fonte do projeto Nao envie os arquivos disponi bilizados pelo professor para a construcao do processador memoriacirc prog1txt etc ou Arquitetura de Computadores I Pagina 5 Universidade Federal de Mato Grosso do Sul Campus de Trˆes Lagoas Bacharelado em Sistemas de Informacao Arquitetura de Computadores I qualquer outro tipo de arquivo nao relacionado ao trabalho Nao se esqueca de enviar eventuais arquivos de bibliotecas que o grupo criar O arquivo compactado deve conter um arquivo texto com o nome grupotxt com os nomes dos alunos do grupo e os respectivos RGAs O envio deve conter somente os arquivos requisitados neste documento Cada grupo deve entregar alem do arquivo compactado contendo os arquivosfonte do trabalho um relatorio escrito a mao ou impresso de ate 5 cinco paginas descrevendo os passos detalhes e atribuicoes de cada integrante duranteo processo de desenvolvimento do trabalho Este relatorio deve ser entregue ate o dia 31102024 Caso seja necessario pode ser agendada uma entrevista com os integrantes do grupo O nao atendimento a qualquer uma das regras citadas pratica de copia plagio ou qualquer outra pratica que represente uma tentativa de obter nota sem efetivamente colaborar no desen volvimento do trabalho ou por meios desonestos pode implicar na atribuicao da nota 0 zero a qualquer um ou a ambos os candidatos do grupo Arquitetura de Computadores I Pagina 6