TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Simulador Hamses

Por:   •  23/6/2016  •  Trabalho acadêmico  •  2.071 Palavras (9 Páginas)  •  723 Visualizações

Página 1 de 9

RESUMO

O objetivo proposto é contruir um simulador para a Unidade de Controle de umas das microarquiteturas do computador hipotético Ramses. O relatório incia-se com uma breve introdução das características, instruções e organização do computador hipotético Ramses. No simulador utilizou-se a linguagem de Programação C, para o desenvolvimento do código e o Ambiente de desenvolvimento integrado Dev C++, para a compilação do mesmo. Foi utilizada a microarquitetura esquematizada no Anexo I.. O programa funciona de uma maneira bem didática, lê um arquivo .txt com o mapa de área de dados da memória em seguida o usuário entra com o código assembly requerido de acordo com as intruções do Hamses via arquivo .txt, faz-se a compilação passo-a-passo, mostrando o conteúdo de cada registrador, área de dados da memória e micro-instruções, e em cada passo apresenta-se os sinais gerados pela unidade de controle. Na saída, tela final, é mostrada pela tela preta de compilação do programa Dev C++, onde apresenta todos os sinais de controle requeridos de acordo com a microarquitetura do Hamses utilizada.

        1.0 INTRODUÇÃO

        Os professores Raul Fernando Weber e Taisy Silva Weber da UFRGS, desenvolveram computadores hipotéticos de uma forma didática e hieraquica de complexidade, tais quais Neander, Ahmes, Ramses e Cesar, com o objetivo de uso na disciplina Arquitetura de Computadores.

        O computador hipotético Ramses, é compatível com o Neander, mas foi adicionado mais recursos para facilitar a programação, ou seja, pode se dizer que ele é uma atualização do computador hipotético Neander.

        Características do Ramses:

  • Largura de dados e de endereços de 8 bits
  • Dados representados em complemento de dois
  • 2 registradores para uso geral A e B de 8 bits
  • 1 registrador de índice X de 8 bits
  • 1 apontador de programa PC de 8 bits
  • 1 registrador de estado com 3 condições: negativo, zero e carry.
  •            O Ramses possui 16 instruções codificadas por 4 bits, para fazer a programação em assembly. Segue a relação na tabela abaixo:

[pic 1]

        Possui 4 modos de endereçamento: direto, indireto, imediato e indexado. Os quais são diferenciados pela forma ou não como acessam a memória e buscam as instruções.

  • Modo de enderaçamento Direto:[pic 2]

Neste modo, o endereço de 8 bits do operando segue a palavra de código da insrução. Em assembly é representado apenas por endereço.

  • Mode de endereçamento Indireto:

Neste modo, o endereço de 8 bits do endereço do operando seque a palavra de código da instrução. Em assembly é representado pelo endereço seguido de um I.[pic 3]

  • Modo de endereçamento Imediato:

Neste modo, o operando de 8 bits segue a palavra de código da instrução, este modo não há acesso a memória. Em assembly é representado por uma # antes do endereço.[pic 4]

  • Modo de endereçamento Indexado:

Neste modo o deslocamento que segue a palavra de código da instrução é somado ao registrador X para formar o endereço do operando. Esse deslocamento é representado em complexo de dois. Em assembly é representado pelo endereço,X.[pic 5]

        O modelo de computador possui uma instrução de subrotina JSR, na qula quando é executada o controle do programa passa para a subrotina que se encontra no endereço apontado por JSR, no final dessa subrotina deve ocorrer um desvio para a posição da instrução que chamou essa subrotina. Neste caso, o retorno, o valo que PC assume após a decodificação da instrução de JSR.

         

2.0        Objetivo proposto

        Construir um simulador para a Unidade de Controle de uma das possíveis microarquiteturas do computador Ramses proposta pelo autor.

        Entradas:

  1. Mapa de área de dados da memória, com os valores iniciais [128...256]
  2. Registradores e seus valores iniciais
  3. Código escrito na linguagem de Montagem do computador Ramses, em .txt
  4. Assumir que o programa inicia no endereço 0 da memória

Saídas:

      1.   Mapa de área de dados da memória, com os valores alterados após a execução do simulador

      2.   Registradores e seus valores alterados após a execução do simulador

      3.   Sequencia de microinstruções gerados em cada instante de tempo de execução, assumindo que memórias e registradores necessitem apenas de 1 ciclo para leitura ou escrita.

3.0        Justificativa de escolha da linguagem de programação

        

        Decidiu-se por programar em linguagem C, devido a mesma ser compilada estaticamente e seus códigos fontes são transformados diretamente em linguagem de máquina. Assim, houve uma relação direta com a lógica do código e os binários correspondentes das instruções e das relações de transferencias necessárias para realizar cada instrução.

4.0        Arquitetura escolhida

        

        Utilizou-se a arquitetura do computador hipotético Ramses tal qual as relações código-instruções e o fluxograma de execução se encontram abaixo. Esta organização foi escolhida, por possuir apenas uma unidade aritmética, facilitando assim a lógica desenvolvida para a operação do simulador.

[pic 6]

[pic 7]

4.0         O simulador

        Requisitos para execução do simulador: estar preferencialmente em ambiente windows.

4.1 Tutorial de execução

        

        Segue as instruções para execução do simulador de Unidade de Controle do Computador Ramses.

Antes de tudo descompacte a pasta que contém o simulador.

Etapa de mapeamento da área de dados da memória

1) Abra o arquivo 'memoria_dados.txt'

        

2) Escreva os valores desejados nas posições de memória que desejar, as posições em branco são consideradas como 0 “zero”, escreva conforme o exmplo abaixo:

...

Baixar como (para membros premium)  txt (11.8 Kb)   pdf (1.5 Mb)   docx (831.2 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com