Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Trabalho AOC - CESJF, Trabalhos de Cultura

Trabalho de AOC do curso Sistemas de Informação do CES/JF (Máquinas Multiníveis)

Tipologia: Trabalhos

2010

Compartilhado em 14/05/2010

kadu-velasco-5
kadu-velasco-5 🇧🇷

9 documentos

1 / 12

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CES
Centro de Ensino Superior de Juiz de Fora
Bacharelado em Sistemas de Informação
1
Arquitetura e Organização de computadores
Máquinas Multiníveis
Carlos Eduardo O. Velasco
1º Semestre / 2009
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Trabalho AOC - CESJF e outras Trabalhos em PDF para Cultura, somente na Docsity!

Bacharelado em Sistemas de Informação

Arquitetura e Organização de computadores

Máquinas Multiníveis

Carlos Eduardo O. Velasco 1º Semestre / 2009

Bacharelado em Sistemas de Informação

1 - Nível de Linguagem de Montagem

1.1 – Introdução

Este nível difere dos níveis inferiores por ser implementado por tradução. A tradução é usada quando um processador está disponível para uma mensagem fonte mas não para uma linguagem alvo

O programa tradutor converte um programa fonte (escrito numa linguagem fonte) para um programa equivalente, o programa objeto (na linguagem de máquina do processador disponível).

A tradução é feita em duas etapas, as quais são realizadas em seqüência. Primeiro a geração de um programa em linguagem alvo (programa objeto), e depois a execução do programa gerado.

Existem dois tipos de tradutores:

  • Compilador: linguagem fonte = linguagem de alto nível; linguagem objeto = linguagem de máquina.
  • Montador (Assembler): linguagem fonte = linguagem de montagem (Assembly) representação simbólica da linguagem de máquina; linguagem objeto = linguagem de máquina.

1.2 - Linguagem de Montagem

As razões para o uso da linguagem de montagem são de melhorar o desempenho e que algumas máquinas podem não ter um compilador disponível.

Cada comando em linguagem resulta em um comando em linguagem de máquina: uma linha de programa fonte ≡ uma linha de programa objeto.

Representação simbólica da linguagem de máquina: Códigos de operação e operandos (números) substituídos por mnemônicos e rótulos.

Ao contrário da programação em alto nível, o programador delinguagem de montagem dispõe de todos os recursos do nível ISA.

Programa não portável (válido apenas para uma mesma família deprocessadores).

1.3 - Formato de um Comando em Linguagem de Montagem

Uma instrução em linguagem de montagem contém, pelo menos, um campo de operação e outros campos que a especificam.

Bacharelado em Sistemas de Informação

No processo de análise das instruções, usando uma Tabela de Códigos de Operação, o montador constrói uma Tabela de Símbolos, a qual será usada no Passo 2.

Tabela de Códigos:

  • A Tabela de Códigos contém uma entrada para cada código de operação (opcode) simbólico (mnemônico) da linguagem de montagem.
  • A tabela tem vários campos que permitem, a partir do mnemônico, definir o seu valor em linguagem de máquina, o tamanho e tipo dos operandos, o tamanho da instrução, etc.:
  • Campo de Código de Operação Simbólico: contém o mnemônico associado à instrução.
  • Campos de Operandos: contêm o tipo de operandos manipulados pela instrução.
  • Campo de Código de Operação: contém o valor numérico do código de operação em linguagem de máquina. Para cada tipo de operandos (modos de endereçamento diferentes), utiliza-se um código de operação diferente.
  • Campo de Tamanho de Instrução: contém o tamanho da instrução correspondente (usado para incrementar o ILC).
  • Campo de Classe de Instrução: contém um número de classe que separa códigos de operação em grupos dependentes do número e do tipo de operandos. Permite ao montador tratar da mesma maneira instruções semelhantes.

A construção da Tabela de Símbolos se dá analisando as instruções, uma a uma, em sequência e o Controlador de Localização de Instrução (ILC - Instruction Location Counter), zerado no início do Passo1, é incrementado do comprimento da instrução corrente a cada instrução analisada. O ILC provê o endereço "de execução" da instrução montada.

Com base no ILC, uma Tabela de Símbolos é montada.

A Tabela de Símbolos contém os seguintes campos:

  • Campo de símbolo: contém o próprios labels, (ou um ponteiro para os mesmos).
  • Campo de Valor: contém o valor numérico atribuído ao símbolo (o valor do ILC da instrução).
  • Outras informações (campos opcionais). Exemplo: Comprimento dos dados associados ao símbolo; Bits de relocação, que especificam se o símbolo muda de valor se o programa é carregado em um endereço diferente daquele assumido pelo montador; Informações sobre se o símbolo é ou não acessível fora do procedimento.

Bacharelado em Sistemas de Informação

Passo 2: No passo dois, é gerado o programa objeto, produzido a expansão binária da instrução a partir das tabelas, produzido informações necessárias ao procedimento de Ligação e Gera mensagens de erro caso estes existam no programa fonte.

1.6 Macros

Macros são abreviaturas simbólicas para trechos do programa fonte. Usadas para diminuir o tamanho do código quando um mesmo trecho de linhas de código aparece repetido várias vezes no programa fonte.

Definição de uma Macro:

  • Só aparece uma vez no programa fonte. Possui em sua estrutura o Cabeçalho da Macro, que contém um nome mnemônico da Macro, o Corpo da Macro que contém as linhas de código, propriamente ditas, que executam a tarefa definida para a Macro e o Fim de Macro, pseudo-instrução de fim de Macro informa ao montador onde a Macro termina.
  • O montador deve manter uma tabela de Macros com o nome de cada uma delas e ponteiros correspondentes para uma tabela de definições das mesmas, onde estão armazenados os corpos das Macros.

A Chamada de Macro é feita no programa fonte através do nome da Macro. O nome da Macro substitui o corpo da Macro em todos os lugares onde este deveria aparecer dentro do programa fonte.

Bacharelado em Sistemas de Informação

O Módulo de Carga contém todos os módulos ligados em um único programa executável.

Um software denominado Carregador (Loader) é responsável por carregar o Módulo de Carga na memória principal para executá-lo.

Para criar o Módulo de Carga, o Linker une todos os Módulos Objeto em um único espaço de endereçamento. As referências a endereços devem ser todas atualizadas (Problema de Relocação). Este problema é inexistente quando a memória é segmentada. Quando existe um Procedimento A que chama a um Procedimento B, o endereço absoluto de B só é conhecido após a ligação (Problema de Referência Externa).

Tarefas do Linker:

  • Construir uma Tabela com todos os Módulos Objeto e seu respectivos comprimentos.
  • Atribuir um Endereço de Carga a cada Módulo Objeto.
  • Relocar todas as instruções que contêm um endereço adicionando uma Constante de Relocação (endereço inicial de cada módulo).
  • Encontrar todas as instruções que referenciam outros procedimentos e inserir nelas o endereço absoluto dos mesmos.

Bacharelado em Sistemas de Informação

Exemplo de Tabela de Módulos objetos:

Módulo Comprimento Endereço Inicial A 400 100 B 400 500 C 200 900

Estrutura de um módulo objeto:

A maioria dos Linkers requer dois passos:

  • Ler todos os módulos objeto, construir uma Tabela de nomes e comprimentos de módulos e uma Tabela global de símbolos internos e externos.
  • Ler os módulos objeto, relocá-los e ligá-los para formar um único módulo.

Campo Conteúdo Identificação Nome do módulo e comprimentos das suas partes

Tabela de Símbolos Internos Lista de símbolos definidos no módulo corrente que outros módulos podem referenciar Tabela de Símbolos Externos Lista de símbolos definidos em outros módulos utilizados no módulo corrente. Lista de instruções e seus correspondentes símbolos externos Instruções e constantes Código montado e constantes (única parte do módulo objeto que será carregada na memória para execução) Dicionário de Relocação Lista de endereços a serem relocados Fim de Módulo Indicação de fim de módulo

Bacharelado em Sistemas de Informação

O SIMD - Single Instruction/Multiple Data stream, corresponde aos processadores matriciais/vetoriais

O MISD – Multiple Instruction/Single Data, não existem computadores construídos que se enquadrem nesta categoria

O MIMD - Multiple Instruction stream over a Multiple Data stream, esta classe engloba a maioria dos computadores paralelos

As arquiteturas MIMD ainda podem ser divididas em duas subcategorias. As arquiteturas de memória compartilhada e as arquiteturas de memória distribuída

Memória Compartilhada:

T odos os processadores possuem acesso a uma memória compartilhada

  • multiprocessadores

Bacharelado em Sistemas de Informação

  • comunicação: através da memória compartilhada
  • acesso: UMA, NUMA

Como pontos positivos podemos citar a localidade memória/processador, o compartilhamento de recursos, é semelhante a uma arquitetura seqüencial, a programação mais simples.

E como pontos negativos citamos o gargalo no barramento de memória e a consistência de cache

Memória Distribuída:

Multicomputadores.

Neste tipo de arquitetura, cada nó tem seu processador, sua unidade de controle e sua memória local e cada processador pode executar um processo independente sobre seus próprios dados.

A estrutura de rede é fundamental e a comunicação é feita através de troca de mensagens

Os pontos positivos são o compartilhamento de uso (vários usuários simultaneamente), a possibilidade de emular outras arquiteturas, a escalabilidade

E os pontos negativos ficam por conta da comunicação, da sincronização, do uso ineficiente de memória e o tipo de acesso, NORMA