Por que processadores com vários núcleos?

16

Por que os chips contêm mais e mais núcleos? Por que não fabricar um processador de núcleo único maior? É mais fácil fabricar? É para permitir que os programas multithread usando núcleos separados?

rkrauter
fonte
O motivo é principalmente o marketing. A maioria dos usuários não se beneficia do multi-core, mas está sendo muito melhor. Faz sentido principalmente para servidores ou usuários avançados.
22410 harrymc
Certamente há hype, mas também há benefícios. Atualmente, a maioria dos usuários pode se beneficiar de um núcleo múltiplo (isto é, tipicamente núcleo duplo) porque a maioria está usando um sistema operacional com vários encadeamentos de execução. Mas para aqueles que ainda usam o Windows 95 ou anterior, eu concordaria que o multi-core é provavelmente uma completa perda de tempo.
irracional John
na harrymc: "O motivo é principalmente o marketing. A maioria dos usuários não se beneficia do multi-core, mas está sendo muito melhor. Isso faz mais sentido para servidores ou usuários avançados". --- Os vendedores de óleo de cobra gananciosos ...
Daniel

Respostas:

25

A tendência em direção a múltiplos núcleos é uma abordagem de engenharia que ajuda os projetistas de CPU a evitar o problema de consumo de energia que acompanha o aumento da escala de frequência. À medida que as velocidades da CPU subiam para a faixa de 3-4 Ghz, a quantidade de energia elétrica necessária para ir mais rápido começou a se tornar proibitiva. As razões técnicas para isso são complexas, mas fatores como perdas de calor e corrente de fuga (energia que simplesmente passa pelo circuito sem fazer nada útil) aumentam mais rapidamente à medida que as frequências aumentam. Embora seja certamente possível construir uma CPU x86 de uso geral de 6 GHz, não é comprovadamente econômico fazê-lo com eficiência. É por isso que a mudança para o núcleo múltiplo começou e é por isso que veremos essa tendência continuar pelo menos até que os problemas de paralelização se tornem intransponíveis.

Como exemplo prático, o E5640 Xeon (4 núcleos a 2,66 GHz) possui um envelope de energia de 95 watts, enquanto o L5630 (4 núcleos a 2,13 GHz) requer apenas 40 watts. Isso é 137% mais energia elétrica e 24% mais energia da CPU para as CPUs compatíveis com os recursos. O X5677 aumenta a velocidade até 3,46 GHz com mais alguns recursos, mas isso é apenas 60% mais poder de processamento para 225% mais energia elétrica.

Agora compare o X5560 (2,8 GHz, 4 núcleos, 95 watts) com o X5660 mais recente (2,8 GHz, 6 núcleos, 95 watts) e há 50% de poder de computação extra no soquete (potencialmente, supondo que a lei de Amdahl seja gentil conosco para agora) sem exigir energia elétrica adicional. Os CPUs da série 6100 da AMD obtêm ganhos semelhantes no desempenho agregado em relação às séries 2400 \ 8400, mantendo o consumo de energia elétrica estável.

Para tarefas de encadeamento único, isso é um problema, mas se seus requisitos forem fornecer grandes quantidades de energia agregada da CPU a um cluster de processamento distribuído ou a um cluster de virtualização, essa é uma abordagem razoável. Isso significa que para a maioria dos ambientes de servidor hoje, escalar o número de núcleos em cada CPU é uma abordagem muito melhor do que tentar construir CPUs de núcleo único mais rápidas e melhores.

A tendência continuará por um tempo, mas há desafios e a expansão contínua do número de núcleos não é fácil (manter a largura de banda da memória alta o suficiente e gerenciar caches fica muito mais difícil à medida que o número de núcleos aumenta). Isso significa que o atual crescimento bastante explosivo no número de núcleos por soquete terá que diminuir em algumas gerações e veremos outra abordagem.

Helvick
fonte
3
Não sei dizer quantas vezes tentei explicar isso para pessoas que ainda acham que uma CPU de 3,6 GHz de 5 anos atrás é mais rápida que uma CPU de 2,8 GHz com a tecnologia mais recente. É irritante. Eu odeio o mito megahertz.
churnd
Também não há uma limitação física devido à velocidade da luz para sinais elétricos?
Mouche
1
@churnd - Mas leve em consideração que eles estão certos de uma maneira. Pois não devemos misturar velocidade com potência (3,6 Ghz é sem dúvida mais rápido que 2,8 Ghz; o que não é é mais poderoso). Isso pode fazer uma diferença significativa para programadores que precisam de velocidades mais rápidas, mas ainda não são proficientes nas técnicas de programação de encadeamento / paralelo.
Rook
3
@ldigas Esses programadores se preocupam com as taxas de execução de instruções de núcleo único, não com as velocidades de clock do núcleo. As CPUs modernas têm taxas de execução de instrução de núcleo único muito mais altas, mesmo que a velocidade do clock seja menor.
David Schwartz
5

Estava ficando muito difícil torná-las úteis mais rapidamente.

O problema é que você precisa trabalhar em várias instruções ao mesmo tempo, a CPU x86 atual tem 80 ou mais instruções sendo trabalhadas de uma só vez, e parece que esse é o limite, como foi atingido com o P4. , o Pentium Pro fez 40 em 1995. Fluxos de instruções típicos não são previsíveis além disso (você precisa adivinhar ramificações, acesso à memória etc.) para executar mais do que algumas instruções de uma só vez (486 fez 5, Pentium fez 10, apenas) .

Portanto, embora você possa torná-las mais amplas (unidades mais funcionais para executar cada parte da instrução) e mais longas (tubulações mais profundas para ocultar a latência), isso não parece fazer muito bem. E parece que também atingimos uma parede com a velocidade do relógio. E ainda estamos superando a memória. Portanto, dividir-se em muitos processadores parece ser uma vitória. Além disso, eles podem compartilhar caches.

Há um pouco mais disso, mas tudo se resume a programas convencionais que não podem ser executados significativamente mais rapidamente em qualquer hardware que possamos imaginar como projetar e construir.

Agora, se a previsibilidade não é um problema, por exemplo, muitos problemas científicos e gráficos (geralmente se resumem a multiplicar esse conjunto de números por esse conjunto de números), esse não é o caso e, portanto, a popularidade do IA64 da Intel ( Itanium) e GPUs, que ficam cada vez mais rápidas, mas não ajudam a executar o Word melhor.

Ronald Pottol
fonte
4

A potência de computação e a frequência de clock de um único processador atingiram seu pico há alguns anos atrás, simplesmente não é fácil criar processadores mais poderosos e / ou mais rápidos do que os atuais; portanto, os principais fabricantes de CPU (Intel, AMD) mudaram de estratégia e passaram a ter vários núcleos. É claro que isso exige muito mais trabalho dos desenvolvedores de aplicativos, a fim de aproveitar todo o poder da multitarefa: um programa em execução em uma única tarefa simplesmente não se beneficia de uma CPU com vários núcleos (embora o sistema receba uma bônus geral porque não trava se um único processo leva uma única CPU a 100% de uso).

Sobre a arquitetura física (processadores com vários núcleos em vez de múltiplos com um único núcleo) ... você deve perguntar à Intel. Mas tenho certeza de que isso tem algo a ver com placas-mãe com um único soquete de CPU, sendo muito mais fácil projetar e fabricar do que placas com vários.

Massimo
fonte
2
Excepcionalmente, espero, ouviremos mais sobre a lei de Amdahl do que a lei de Moore.
Evan Anderson
1

Para aumentar a velocidade do clock, os transistores de silício no chip precisam poder mudar mais rapidamente. Essas velocidades mais altas exigem tensões de entrada mais altas e processos de fabricação de semicondutores que resultam em maior vazamento , os quais aumentam o consumo de energia e a produção de calor. Você finalmente chega a um ponto em que não pode mais aumentar as taxas de clock sem exigir quantidades excessivas de energia ou usar soluções de refrigeração exóticas.

Para ilustrar esse problema, compararei dois processadores AMD modernos. O AMD FX-9590 é capaz de atingir velocidades de clock de até 5 GHz prontas para uso, mas opera em tensões de até 1,912 V, o que é extremamente alto para um chip de 32 nm e dissipa 220 watts de calor insanos . O FX-8350, que é baseado na mesma matriz, funciona no máximo em 4,2 GHz, mas opera no máximo em 1,4 V e dissipa 125 watts.

Como resultado, em vez de tentar aumentar ainda mais os relógios, os engenheiros procuraram fazer com que os chips trabalhassem mais rapidamente de outras maneiras, inclusive projetando-os para executar vários processos simultaneamente - daí os processadores com vários núcleos.

bwDraco
fonte
0

Lei de Moore . Basicamente, os processadores não podem ser feitos mais rápido (a frequência atingiu 3 GHz há 5 anos e nunca foi muito além disso); portanto, eles se tornam mais poderosos ao obter mais núcleos.

wazoox
fonte
A lei de IMHO Moore é mais uma descrição do que uma previsão ... com certeza se manteve, e ainda o faz, mas nada garante que não quebrará amanhã. Você simplesmente não pode ir a um engenheiro e dizer a ele "você deve poder fazer isso porque a lei de Moore diz que isso pode ser feito" quando a física não permitir mais isso.
Vlad-ardelean