A principal diferença entre o Superscalar e o Paralelismo

1

No processamento superescalar, mais de uma instrução é executada em paralelo em cada núcleo, então, como isso seria diferente do processamento paralelo?

Obrigado.

    
por Mike 07.02.2016 / 04:07

1 resposta

1

Superscalar é um termo que se refere à arquitetura de uma CPU ou núcleo único.

Para executar uma instrução, uma CPU tem que executar um número de etapas, e cada etapa é tratada por uma parte dedicada específica ou "unidade de execução" da CPU. As CPUs não-superescalares começam do passo 0 ao X (o X pode variar dependendo do tipo de instrução) e concluem todas as etapas completamente antes de iniciar a próxima instrução.

As CPUs superescalares tentarão obter novas instruções no "pipeline" na etapa 0, por exemplo, antes que a instrução anterior tenha concluído todas as etapas. Portanto, a CPU é mais utilizada e mais rápida (e muito mais complexa) porque suas unidades de execução estão sempre funcionando.

Uma carga de trabalho alcança o paralelismo se puder ser dividida em unidades de modo que mais de uma coisa possa funcionar efetivamente. Arquiteturas superescalares tentam paralelizar a execução de um único fluxo de instruções em um único núcleo / CPU.

O processamento paralelo é semelhante em conceito, mas não estamos mais falando sobre o fluxo de instruções de uma CPU, mas sim alguns (provavelmente grandes) conjuntos de dados que precisam ser processados. Como você pode dividir a carga de trabalho onde X quantidade de CPUs ou até mesmo nós separados conectados por uma rede, executando o mesmo ou diferentes programas, de modo que a carga de trabalho é processada de forma mais eficiente? O que é necessário para garantir que as CPUs ou os sistemas não colidam uns com os outros e corrompam os dados? Esse é o tipo de pergunta que o processamento paralelo pede.

    
por 07.02.2016 / 05:19