Buscar

Nível de Linguagem de Montagem e Arquitetura de Computadores Paralelos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

CAPÍTULO 7 - NÍVEL DE LINGUAGEM DE MONTAGEM
Qual a diferença entre tradução e interpretação?
Na tradução cada instrução escrita na linguagem-fonte é substituída por uma sequencia equivalente de instruções em linguagem-alvo, resultando num novo programa. Já na interpretação, a cada instrução da linguagem-fonte é examinada por vez e é executada diretamente a sequência equivalente de instruções na linguagem-alvo. Ao contrário da tradução, não é preciso uma compilação prévia de um programa na linguagem-fonte.
O que são macros? Qual a vantagem de usa-los?
Macro é uma maneira de atribuir a uma parte do código escrito em linguagem de montagem um nome. Depois da definição do macro, basta invoca-lo ao invés de escrever todo aquele conjunto de instruções novamente.
Ou seja, macro é a abreviatura da parte de um código.
Por que programar em linguagem de máquina?
Por razões de performance: produz-se um código de máquina menor e muito mais rápido. Rotinas de BIOS, por exemplo, exigem velocidade de processamento.
Por razões de acesso aos recursos da máquina: o programador da Linguagem de Montagem tem acesso a todas as características e todas as instruções da máquina-alvo.
O que são linguagens de montagem/de máquinas?
Uma Linguagem de Montagem é aquela na qual cada comando produz, exatamente, uma instrução de máquina (correspondência um-para-um).
Linguagem de Máquina são as instruções que o processador é capaz de executar, chamadas de código de máquina, que são representadas por sequencia de bits, normalmente limitados pelo número de bits do registrador principal da CPU.
Quais são as 4 partes de uma declaração?
Campo de rótulo (label): nome simbólico atribuído a um endereço. Permite que destinos de desvios sejam identificados facilmente pelo programador.
Campo de operação: abreviatura simbólica do OPCODE. Deve lembrar o tipo de operação realizada pela instrução. Exemplo: ADD = soma.
Campo de operando(s): Especifica simbolicamente o(s) endereço(s), registrador(es) ou constante(s) utilizados como operandos.
Campo de comentários: documenta o programa (o qual seria legível sem este campo). Ignorado pelo montador.
O que acontece quando um programa-objeto entra em execução?
Ficam apenas 3 níveis visíveis na memória (ISA, sistema operacional e o programa). Quando um programa objeto é carregado na memória principal, o seu arquivo fonte é totalmente perdido. Afinal, na tradução o programa precisa todo ser convertido na linguagem-alvo (no caso, a linguagem de máquina), ficando somente o programa objeto, o sistema operacional e o nível ISA visíveis.
Para que serve a tabela de símbolos?
A tabela de símbolos contém o valor de todos os símbolos. Um símbolo é um rótulo ou um valor ao qual é atribuído um nome simbólico por meio de uma pseudo-instrução tal como BUFFSIZE QUE 8192. Ela reúne todos os rótulos e constantes do programa, para que sejam usados na passagem dois.
O que é o ILC?
O ILC (Instruction Location Counter) é uma variável utilizada pelo montador, durante o processo de montagem, para conhecer o endereço em tempo de execução de uma instrução que estiver sendo montada.
Para que serve ligação e carregamento?
A função da ligação ou carregamento é encontrar e interligar todos os procedimentos traduzidos adequadamente para que o programa seja executado. Se não houver espaço na memória virtual disponível, o programa ligado deve ser explicitamente carregado também na memória principal.
O que é sintonização?
É uma solução híbrida para programação que utiliza no desenvolvimento de um programa, linguagem de alto nível para tarefas mais rápidas e simples; depois aperfeiçoa o código montador nos trechos de programas que consomem mais tempo de processamento.
�
CAPÍTULO 8 – ARQUITETURAS DE COMPUTADORES PARALELOS
O que são superescalares?
São máquinas conhecidas por possuírem mais de um pipeline em paralelo em sua arquitetura. Para evitar problema de acesso a recursos comuns, deve-se possuir barramentos com largura suficiente para busca de mais de uma instrução por ciclo, e pode-se ter caches separadas para dados e instruções.
Defina arquitetura VLIW
Máquinas com arquitetura VLIW (Very Long Instruction Word) exploram o paralelismo em nível de instruções. São feitas várias operações em paralelo, pois são codificadas em uma mesma instrução. A palavra da instrução é longa o bastante para possuir várias operações independentes.
O que é SMT (Simultaneous Multithreading)?
Thread é a capacidade de se dividir um mesmo processo em mais de uma tarefa para ser executado simultaneamente.
Simultaneous Multithreading é a técnica que permite que múltiplos threads despachem múltiplas instruções a cada ciclo para unidades funcionais de um processador superescalar.
São três tipos básicos:
- Full Simultaneous issue: não há restrição sobre o número de instruções de cada thread que pode ser despachado a cada ciclo.
- Limited Simultaneous issue: apenas um número limitado de instruções de cada thread pode ser despachado a cada ciclo.
- Limited Connection: restringem o número de unidades funcionais de cada tipo que podem estar conectadas a cada contexto.
Acoplamento: do mais forte para o mais fraco. Dê exemplos.
Quando duas CPUs ou elementos de processamento estão perto uma da outra, tem alta largura de banda, o atraso entre elas é baixo e são íntimas em termos computacionais, diz-se que estão fortemente acopladas. Ao contrário, quando elas estão longe uma da outra, tem baixa largura de banda e alto atraso e são remotas em termos computacionais, diz-se que são fracamente acopladas. Exemplos de acoplamento forte: multiprocessadores que usam paralelismo no chip; acoplamento fraco: computação em grade.
O que é paralelismo de nível de instrução? Ex.
Paralelismo é o modo de conseguir que uma CPU faça várias tarefas ao mesmo tempo. Uma maneira de conseguir paralelismo no nível mais baixo é emitir múltiplas instruções por ciclo de relógio, seja através de processadores superescalares e processadores VLIW (Very Long Instruction Word). Exemplo: Processadores com pipelines duplos de cinco estágios com uma unidade de busca de instrução em comum.
O que são multiprocessadores em um chip? Como são classificados?
Multiprocessador é um computador paralelo no qual todas as CPUs compartilham uma memória em comum. Também são conhecidos como Sistemas de Memória Compartilhada.
São classificados em multiprocessadores homogêneos (compartilham a mesma cache e memória principal) e heterogêneos (como em sistemas embutidos, com uma ou mais CPUS, memórias, controladores, de E/S).
Como funciona a segmentação simétrica em um multiprocessador UMA?
Num multiprocessador UMA (Uniform Memory Access – acesso uniforme à memória), cada CPU tem o mesmo tempo de acesso a todos os módulos de memória. Em outras palavras, cada palavra de memória pode ser lida tão rapidamente quanto qualquer outra palavra de memória. Se isso for tecnicamente impossível, a velocidade das referências mais rápidas é reduzida para que se compatibilizem com as mais lentas. Esta uniformidade torna o desempenho previsível.
Esses multiprocessadores se comunicam via um barramento compartilhado (de escuta), um comutador crossbar ou uma rede de comutação multiestágios. 
Como é a arquitetura de processadores NUMA?
Nos processadores NUMA (NonUniform Memory Access – acesso não uniforme à memória), muitas vezes há um módulo de memória próximo a cada CPU e acessar aquele módulo de memória é mais rápido do que acessar os distantes. Nessas máquinas: há muito espaço de endereço visível a todas as CPUs; o acesso à memória remota é feito usando instrução LOAD e STORE; o acesso à memória remota é mais lento do que o acesso à memória local.
O que é topologia? 4 exemplos.
Topologia de uma rede de interconexão descreve a organização de seus links e de seus comutadores. Geralmente são modelados como grafos, com os links sendo os arcos e os comutadores os nós.Exemplos: em rede; em árvore; em anel; em grade; double torus; em cubo; hipe.
Cada nó da rede tem certo número de links ligados a ele, conhecido como grau de nó. O diâmetro da rede é definido como a distância, medida em números de links a serem percorridos, entre dois nós mais afastados; a dimensão da rede é determinada pelo número de escolhas que podem ser feitas para se ir de uma fonte para um destino. Quando se tem uma única escolha, a dimensão é zero. A dimensão é n-1 quando se tem n escolhas.
O que é MPP? Explique
MPPs (Massively Parallel Processors – processadores maciçamente paralelos), é uma categoria de multicomputadores de troca de mensagens, grandes com redes de comunicação especializadas como o BlueGene/L da IBM. 
O que é Cluster? Exemplos
Clusters são sistemas mais simples que usam componentes de prateleira, como o sistema que sustena o Google. Ou seja, é um conjunto de computadores que usa um tipo especial de sistema operacional classificado como sistema distribuído.
O que é Grid? Exemplos
Computação em grade/grid é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma máquina virtual. Esses processos podem ser executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, assim evitando o desperdício de processamento da máquina utilizada. A grade proporciona infra-estrutura técnica para permitir que um grupo de organizações que compartilham uma mesma meta forme uma organização virtual. Exemplo: OGSA (Open Grade Services Archecture), projetos como o Folding@Home.
Como projetos de máquinas paralelas podem ser interconectadas?
Os esquemas de interconexão podem ser de dois tipos:
- Estáticos: ligam os componentes do sistema de maneira física.
- Dinâmicos: componentes são ligados através de comutadores que roteiam a comunicação entre eles.
Explique granularidade. Quais os tipos e dê exemplos
A granularidade no paralelismo refere aos tipos de algoritmos e softwares que são rodados no computador e tem reflexo direto no hardware:
- Paralelismo de granularidade alta (ou grossa): sistemas que rodam programas grandes em paralelo com pouco, ou nenhuma, comunicação. Rodam em regime de tempo compartilhado e podem atender a milhares de usuários remotos. Ex.: sistemas de bancos, companhias aéreas.
- Paralelismo de granularidade baixa: implementado em sistemas que precisam de alto grau de processamento pipeline, ou por várias ULAs trabalhando simultaneamente sobre a mesma instrução. Ex.: sistemas para previsão do tempo.
- Paralelismo de granularidade média: Possuem um pouco de ambas características.
Quais são os componentes de uma rede de interconexão? Explique cada um.
Além dos módulos de memória e processadores, as redes de interconexão possuem: Interfaces, Links e Comutadores.
As interfaces são dispositivos responsáveis pelo envio e recepção de mensagens. Os links são canais físicos sobre os quais os bits de movimentam, por transferência de dados (Simplex, Half Duplex e Full Duplex). Comutadores são dispositivos com várias portas de entrada e saída.
�PAGE \* MERGEFORMAT�1�

Outros materiais