Buscar

Aula 06 arquitetura de computadores

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Aula 06 – Arquitetura de computadores
Tema: Paralelismo
Quando duas unidade de processamento (UCP/CPU) estão perto, tem largura de banda alta, baixa latência e muito próximos em termos computacionais, sendo fortemente acoplados. Já quando longe, tem largura de banda baixa, alta latência e distantes em termos computacionais, sendo assim fracamente acoplados.
	O paralelismo pode ser introduzido em vários níveis;
	No nível mais baixo, ele pode ser adicionado ao CHIP da CPU por pipeline e projetos superescalares com várias unidades funcionais;
	Também pode ser adicionado por meio de palavras de instrução muito longas com paralelismo implícito;
	Várias CPU podem ser reunidas no mesmo chip;
	No nível seguinte, placas extras de CPU com capacidade de processamento adicional podem ser acrescentadas a um sistema;
	Essas tendo funções especializadas como: processamento de rede, de multimídia ou criptografia;
	Essa ideia leva a grandes multiprocessadores e multicomputadores (clusters);
	É possível envolver organizações inteiras pela Internet e formar grades computacionais fracamente acopladas;
O paralelismo pode ser divido em categorias, mas as princip)ais são:
	Paralelismo no chip;
	Paralelismo a nível de instrução;
Paralelismo
	Paralelismo no chip: um modo de aumentar a produtividade de um CHIP é conseguir que ele faça mais coisas ao mesmo tempo, em outras palavras, explorar o paralelismo;
	Alguns modos de aumentar a velocidade por paralelismo no chip: incluindo paralelismo no nível da instrução, multithreading e mais de uma CPU no chip;
	Paralelismo a nível de instrução: um modo de paralelismo no nível mais baixo é emitir múltiplas instruções por ciclo de clock;
	CPU superescalares são capazes de emitir múltiplas instruções para as unidades de execução em um único ciclo de clock;
	O hardware determinada o número máximo que pode ser emitido;
	Em geral, duas a seis instruções;
	Se a instrução precisa de unidade funcional não disponível ou um resultado ainda não calculado, ela não será emitida;
	Outra forma de paralelismo no nível de instrução é encontrada em processadores VLIW (Very Long Instruction Word);
	Na forma original, VLIW tinham palavras longas que continham instruções que usavam múltiplas unidades funcionais;
	Projeto muito rígido;
	Nem toda instrução utiliza todas unidades funcionais, resultado em muitas NO-OP (operações inúteis/não-operandos) inúteis, usadas como filtro;
	Modernas máquinas de VLIW têm modo de marcar grupo de instruções que formam um conjunto com bit “final de grupo”;
	O processador pode buscar o grupo inteiro e emiti-lo de uma vez;
	Cabe ao compilador preparar grupos de instruções compatíveis;
	VLIW transfere do tempo de execução para o tempo de compilação o trabalho de determinar quais instruções podem ser emitidas em conjunto;
	Essa opção simplifica o hardware e o torna mais rápido;
	Permite que se montem pacotes melhores do que o hardware montaria em tempo de execução;
	O paralelismo no nível de instrução não é a única forma de paralelismo de baixo nível;
	Outra forma é o paralelismo no nível de memória, no qual há múltiplas operações no ar ao mesmo tempo;
Multithreading no chip
	Permite que a CPU gerencie múltiplos threads de controle ao mesmo tempo; em suma, se o thread 1 estiver bloqueado, a cpu ainda tem uma chance de executar a thread 2. De modo a manter o hardware totalmente ocupado.
Multiprocessadores com um único chip
	Necessário quando o multithreading no chip não dá conta de satisfazer o nível de performance exigido;
	Para isso, é necessário chip multiprocessadores;
Coprocessadores
	Processadores auxiliares. Com a adição de um segundo processador especializado, o computador pode ganhar velocidade (ex: Neural Engine no iPhone X S Max).
	Sendo necessário principalmente em:
	Processadores de rede;
	Processadores de mídia;
	Cripto processadores;
Multiprocessadores de memória compartilhada
	Vários processadores numa mesma máquina que estão usando a mesma memória;
Multiprocessadores versus Multicomputadores
Multiprocessadores
	[Em um] Computador paralelo – todas CPU compartilham memória comum;
	Modelo de fácil entendimento pelos programadores e é aplicável a uma ampla faixa de problemas;
	Todos os processos que funcionam juntos podem compartilhar um único espaço de endereço virtual mapeado para a memória comum;
Multicomputadores
	Arquitetura paralela – todas as CPU possuem sua própria memória privada, acessível somente por ela e nenhuma outra;
	Também denominado sistema de memória distribuída;
	Exs.: IBM, BlueGene/P, Red Storm, cluster Google, sendo o BlueGene considerando o mais rápido;
Computação de cluster
O outro estilo de multicomputador é o computador de cluster. Em geral, consiste em camadas de milhares de PC ou estações de trabalhos conectadas por uma placa de rede. A diferença entre um cluster e os multicomputadores é análoga à diferença entre um mainframe e um PC. Ambos possuem uma CPU, possuem memória RAM, SO e assim por diante. Porem, componentes do mainframe são mais rápidos (exceto talvez o SO). No entanto, em termos qualitativos, eles são considerados diferentes e são usados e gerenciados de modos diferentes. Essa mesma diferença vale para multicomputadores em relação aos clusters.
Embora existam muitos tipos de clusters, são dois os que dominam: o centralizado e o descentralizado.
Centralizado
É um cluster de estações de trabalho ou PC(s) montados em uma grande estante dentro de uma sala. Às vezes, eles são empacotados de um modo bem mais compacto do que o usual, para reduzir o tamanho físico e o comprimento dos cabos. Em geral, as máquinas são homogêneas e não tem periféricos, a não ser placas de rede e, possivelmente, cabos.
Descentralizado
Consistem em estações de trabalho ou PC(s) espalhados por um prédio ou campus. Grande parte deles fica ociosa por muitas horas do dia, em especial a noite. Costumam ser conectados em LAN. Em geral, são heterogêneas e têm um conjunto completo de periféricos, embora ter um cluster com 1.024 mouses na verdade não é muito melhor que ter um cluster sem mouse algum. O mais importante é que muitos deles têm proprietários que têm um apego emocional às suas máquinas e tendem a olhar com desconfiança algum astrônomo que queira simular o big bang nelas.
Usar estações de trabalhos ociosas para formar um cluster sempre significa dispor de algum meio de migrar tarefas para fora das máquinas, quando seus donos a reivindicarem. A migração é possível, mas aumenta a complexidade do software.
De modo geral, os clusters são conjuntos pequenos com cerca de 500 PC(s). Contudo, também é possível construir cluster(s) muito grande(s) com PC(s) de prateleira, como o Google faz. 
Leia o artigo sobre: http://www.ice.edu.br/TNX/encontrocomputacao/artigos-internos/prof_andersown_computacao_em_cluster.pdf

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando