Por que processadores multi-core?

14

Por que os chips contêm mais e mais núcleos? Por que não fabricar um processador single-core maior? É mais fácil fabricar? É permitir que os programas sejam multithread usando núcleos separados?

    
por rkrauter 12.06.2010 / 16:29

5 respostas

23

A tendência para múltiplos núcleos é uma abordagem de engenharia que ajuda os projetistas de CPU a evitar o problema de consumo de energia que vem com o escalonamento de frequências cada vez maior. À medida que a velocidade da CPU aumentava para a faixa de 3-4 Ghz, a quantidade de energia elétrica necessária para ir mais rapidamente 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 rápido à medida que as frequências aumentam. Embora seja certamente possível construir um CPU x86 de uso geral de 6 GHz, não é económico fazê-lo de forma eficiente. É por isso que a mudança para multi-core começou e é por isso que veremos essa tendência continuar pelo menos até que as questões de paralelização se tornem intransponíveis. No momento, a tendência para a virtualização ajudou na arena do servidor, pois isso nos permite paralelizar as cargas de trabalho agregadas de maneira eficiente, pelo menos no momento.

Como exemplo prático, o E5640 Xeon (4 núcleos @ 2,66 GHz) tem um envelope de energia de 95 watts, enquanto o L5630 (4 Núcleos @ 2,13 GHz) requer apenas 40 watts. Isso é 137% mais energia elétrica para 24% mais energia da CPU para CPUs que são, na maior parte, compatíveis com recursos. O X5677 aumenta a velocidade para 3.46 GHz com mais recursos, mas isso representa apenas 60% a mais de potência de processamento para 225% a mais de energia elétrica.

Agora compare o X5560 (2,8 GHz, 4 núcleos, 95 watts) com o novo X5660 (2,8 GHz, 6 núcleos, 95 watts) e há 50% de poder computacional extra no soquete (potencialmente, supondo que A lei de Amdahl sendo gentil conosco por enquanto) sem requerer energia elétrica adicional. Os processadores da série 6100 da AMD veem ganhos similares no desempenho agregado da série 2400 \ 8400, mantendo o consumo de energia elétrica estável.

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

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

    
por 12.06.2010 / 22:47
4

O poder de computação e a frequência de clock de um único processador atingiram seu pico há alguns anos, não é fácil criar processadores mais potentes e / ou mais rápidos do que os atuais; então os principais fabricantes de CPU (Intel, AMD) mudaram de estratégia e foram multi-core. Obviamente, isso exige muito mais trabalho dos desenvolvedores de aplicativos para aproveitar todo o potencial da multitarefa: um programa em execução em uma única tarefa não obtém nenhum benefício de uma CPU com vários núcleos (embora o sistema receba uma bônus geral porque ele não bloqueia se um único processo leva uma única CPU a 100% de uso).

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

    
por 12.06.2010 / 16:40
4

Estava ficando muito difícil torná-los mais rápidos.

O problema é que você precisa estar trabalhando em um monte de instruções de uma só vez, a atual CPU x86 tem 80 ou mais instruções sendo trabalhadas de uma só vez, e parece que é o limite, como foi atingido com o P4, o Pentium Pro fez 40 em 1995. Fluxos de instrução 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 vez (486 fizeram 5, o Pentium fez 10 mal).

Assim, enquanto você pode ampliá-las (mais unidades funcionais para executar cada parte da instrução), mais longas (pipelines mais profundas para ocultar a latência), isso não parece fazer muito bem. E nós parecemos ter atingido uma parede com a velocidade do clock também. E ainda estamos superando a memória. Então, dividir em muitos cpu parece ser uma vitória. Além disso, eles podem compartilhar caches.

Há um pouco mais nisso, mas tudo se resume a programas convencionais que não podem ser executados de maneira significativamente mais rápida 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 (eles 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 de Intel IA64 (Itanium) e GPUs, que continuam sendo mais rápidos, mas não vão ajudá-lo a executar o Word melhor.

    
por 13.06.2010 / 04:04
1

Para aumentar a velocidade do clock, os transistores de silício no chip precisam ser capazes de alternar mais rapidamente. Essas velocidades mais altas exigem voltagens de entrada mais altas e processos de fabricação de semicondutores que resultam em maior vazamento de , ambos aumentar o consumo de energia e a saída de calor. Você chega a um ponto em que não consegue aumentar as taxas de clock sem exigir quantidades excessivas de energia ou usar soluções de resfriamento 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, mas opera com tensões centrais de até 1,912 V, que é extremamente alta para um chip de 32 nm e dissipa 220 watts de calor. A FX-8350, que é baseada no mesmo chip, opera a um máximo de 4,2 GHz, mas opera a um máximo de 1,4 V e dissipa 125 watts.

Como resultado, em vez de tentar aumentar ainda mais os relógios, os engenheiros têm procurado fazer com que os chips trabalhem mais rapidamente de outras maneiras, incluindo projetá-los para executar vários processos simultaneamente - daí os processadores multicore.

    
por 28.01.2014 / 03:32
0

A lei de Moore . Basicamente, os processadores não podem ser mais rápidos (a freqüência atingiu 3 GHz há 5 anos e nunca superou muito isso), então eles ficam mais poderosos obtendo mais núcleos.

    
por 12.06.2010 / 16:40