Sei sulla pagina 1di 20

Linguagem de

Montagem
Professor Emmanuel Nolêto
contato@emmanuelnoleto.com.br
Código de Maquina
• Instruções que o computador é capaz de
atualizar.
• São respresentadas por sequências de
bits.
• São normalmente limitadas pelo número
de bits do registrador principal da CPU.
– Exemplo: 8, 16, 32, 64 ou 128
Assembly
• Denominada como notação legível para
humanos para um código de máquina.
• É utilizada por uma arquitetura
específica de computador.
• Tradutor
– programas que convertem um programa
usuário escrito em uma linguagem para
outra, código fonte para codigo compilado.
Assembly
• Montador
– Um tradutor onde a linguagem fonte é a
liguagem de montagem e a linguagem alvo é
a linguagem de máquina
Histórico
Elementos de uma instrução
• Internamente cada instrução pode ser
representada como uma sequência de
bits dividida em campos conforme figura
abaixo:
Elementos de uma instrução
• Cada instrução deve conter toda a informação
necessária para que a CPU possa executá-la;
– Código da operação: especifica a operação a ser
efetuada.
– Referência ao operando-fonte: os dados envolvidos
na operação devem estar referenciados na
instrução.
– Referência ao operando-destino: deve-se fornecer
informações que possibilite o armazenamento do
resultado gerado pela instrução.
Representação de uma instrução

• Dificuldade do programador lidar com


representações binárias de instruções de
máquina.
• Uso de uma representação simbólica:
– Os códigos de operação são representados por
abreviações, chamadas mnemônicos.
• ADD (adição)
• SUB (subtração)
• MPY (multiplicação)
– Os operandos também são representados de maneira
simbólica.
• ADD AX, BX
Montadores, Ligadores e Carregadores

• Fluxo da construção até a execução de um programa


– Compiladores
• Responsável pela tradução de um programa descrito em
linguagem de alto nível para
– Montadores (assembler)
• Responsáveis pela tradução do programa escrito em
linguagem assembly
• Resultado é um programa em linguagem de máquina
– Ligadores (linker / Link-editor)
• Responsável por unir diferentes partes de um programa
• Permite modularizar o desenvolvimento de um programa
– Carregadores (loader)
• Responsável pela transferência de um programa para a MP
Proposta de uso dos mecanismos

• Arquitetura
– Montador e Carregador integrados
Proposta de uso dos mecanismos

• Arquitetura
– Montador e Carregador independentes
Proposta de uso dos mecanismos

• Arquitetura
– Montador, Ligador e Carregador independentes
Arquiteturas Paralelas
• A computação paralela é caracterizada pelo
uso de várias unidades de processamento ou
processadores para executar uma
computação de forma mais rápida.
• É baseada no fato de que o processo de
resolução de um problema pode ser dividido
em tarefas menores, realizadas
simultaneamente por meio de algum tipo de
coordenação.
Aplicação do uso da arquitetura
paralela
• Conhecida como processadores vetoriais ;
• Aplicação de operações aritméticas/lógicas sobre vetores,
em vez de operações sobre pares de dados ou dados
escalares.
• Características:
– Reduz o custo de manutenção de estruturas de controle para
laços de processamento;
– Reduz conflitos de acesso à memória;
– Pode ser empregada com conceitos de pipeline;
– Geramente tem um aumento de desempenho da ordem de 10 a
20 vezes quando comparada com máquinas escalares;
– Aumenta os custos de hardware;
– Aumenta os custos de compilação do código (vetorização).
Multiprocessadores simétricos
• São conhecidos como arquiteturas de compartilhamento total;
• São caracterizadas por até dezenas de processadores
compartilhando os mesmos recursos computacionais e
rodando um único sistema operacional.
• Têm os mesmos custos para acesso à memória principal;
• É encontrado facilmente em grande parte das organizações de
hoje, e também vem ganhando espaço em áreas menores,
reflexo da redução de custos.
• Apresenta problema com a escalabilidade
– Com o aumento do número de processadores, a taxa de colisão de
acesso à memória também cresce, sendo necessária a utilização
de soluções de memórias de cache e globais, que serão vistas à
frente.
Máquinas maciçamente paralelas

• Máquinas que almejam o alto desempenho por meio


da utilização de um grande número de processadores
comerciais
• Trabalham com processadores de baixo custo;
• São processadores de baixo ou médio poder
computacional.
• Cada nó possui uma memória local com um espaço de
endereçamento próprio.
• Cada nó só tem acesso à sua própria memória, o que
a caracteriza como uma máquina NORMA.
• A comunicação entre as máquinas é feita por meio de
troca de mensagens.
Máquinas com memória compartilhada
distribuída

• Memórias que estão separadas


físicamente;
• Todos os processadores podem
endereçar as memórias de todos os
nós
• Basei-se na implementação de um
espaço único de endereçamento
– pode ter sido feito tanto em hardware
como em software
Cluster
• Conhecido como aglomerado de computadores;
• É formado por um conjunto de computadores que
se utiliza de um tipo especial de sistema
operacional classificado como sistema distribuído;
• É construído a partir de computadores
convencionais (personal computers);
• São ligados em rede e comunicam-se por meio do
sistema, trabalhando como se fossem uma única
máquina de grande porte.
Cluster - Tipos
• Um tipo famoso é o cluster da classe Beowulf,
– Constituído por diversos nós escravos gerenciados por um só
computador.
– Ele pode ser definido também como o cruzamento de uma trilha com
um setor de um disco formatado.
• Um HD (hard disc) possui vários clusters que serão
utilizados para armazenamento dos dados de um
determinado arquivo.
• Com essa divisão em trilhas e setores, é possível criar um
endereçamento que visa facilitar o acesso a dados não
contíguos,
• Devido o endereçamento de uma planilha de cálculos ou,
como um exemplo mais simples, o tabuleiro do jogo
"batalha naval".

Potrebbero piacerti anche