O que é multicore heterogêneo e como ele melhora a eficiência

Multicore heterogêneo

Nos últimos tempos, a computação heterogênea está na boca de todos os entusiastas de hardware porque é uma grande promessa para melhorando a eficiência de PCs modernos. Neste artigo, vamos falar sobre um termo relacionado, mas muito mais específico, o multicore heterogêneo , um paradigma que está cada vez mais sendo usado por CPU fabricantes e que certamente veremos com frequência nas futuras gerações de CPU.

É preciso reconhecer que o multicore heterogêneo não é um conceito novo, longe disso, já que no mundo dos dispositivos móveis já existe há bastante tempo e com certeza você o será. familiar com o nome big.LITTLE de ARM ou de Intel Arquitetura de Lakefield, que ele também usa. Em qualquer caso, neste artigo vamos nos aprofundar no conceito para que você possa entender todos os seus prós e contras da maneira mais simples que pudermos.

O que é multicore heterogêneo?

Intel 8700K morrer

Já falamos em outras ocasiões sobre esse arranjo no design interno dos processadores, que consiste em que nem todos os núcleos são iguais, mas que existem diferentes clusters (grupos, para resumir) de diferentes núcleos, justamente por isso isso é chamado de multicore heterogêneo. Para colocar isso em perspectiva, imagine, por exemplo, um processador Intel Core i7-8700K, que tem seis núcleos físicos; neste, os seis núcleos são exatamente iguais, trabalham em sintonia com a mesma velocidade e realizam as tarefas atribuídas igualmente, dividindo o trabalho entre todos.

A diferença de um processador “normal” como os que temos utilizado nos PCs até agora, um CPU com multicore heterogêneo, é que neste último nem todos os núcleos são iguais, mas possui vários grupos de núcleos que podem ser completamente diferente em termos de tamanho físico (e com ele, em termos de número de transistores), operando velocidade e multiplicador , mas também (como explicaremos a seguir) em termos de balanceamento de carga.

Assim, por exemplo, você pode ver na imagem abaixo um MediaTek Processador Helio X20 que possui um cluster Cortex-53 ULP de baixo consumo, outro cluster Cortex-A53 quad-core mais poderoso, mas muito eficiente e, finalmente, um terceiro cluster com dois núcleos Cortex-A72 de alto desempenho.

Núcleo mediatek helio deca

Este é um processador multicore heterogêneo, e é assim chamado literalmente porque tem vários núcleos (multicore) que são diferentes (heterogêneos) em vez de ser uma computação homogênea em que todos os núcleos são iguais. Como já dissemos, cada um desses clusters é diferente fisicamente e também em termos empíricos de velocidade, multiplicador e até mesmo voltagem, podendo até se comportar como se fossem processadores diferentes .

Por que este design é mais eficiente?

diagrama big.LITTLE

Um exemplo de computação heterogênea está na arquitetura big.LITTLE da ARM, onde sistemas multicore heterogêneos são usados ​​onde todos compartilham o mesmo ISA, ou seja, todos os núcleos podem executar o mesmo conjunto de instruções e realizar qualquer tarefa que lhes seja confiada. . Isso significa que quando o sistema está ocioso, o processador pode desativar os núcleos mais poderosos para economizar energia e, assim, reduzir o consumo e a temperatura, melhorando significativamente a eficiência.

No momento em que mais energia é necessária da CPU, ele ativa o próximo cluster de núcleos para que o desempenho obtido seja o esperado e, se necessário, pode ativar os núcleos de alto desempenho para entregar todo o seu potencial. Este sistema é muito eficiente porque quando o processador é necessário, ele pode fornecer toda a sua potência, mas como cada cluster pode se comportar como um processador independente, é capaz de desativando grupos de núcleos quando eles não são necessários. economizando muita energia.

Certamente muitos de vocês dirão que em um processador com núcleos homogêneos, os núcleos também poderiam ser desativados, mas o “segredo” dos processadores heterogêneos é ter núcleos de baixo consumo, o suficiente para tarefas básicas que não requerem muita energia e que consumiriam menos do que os núcleos de uso geral que equiparam os processadores até agora; Em outras palavras, tendo núcleos específicos de baixo consumo, obtém-se uma eficiência muito melhor.

Outra coisa que torna possível a computação heterogênea é que nem todos os núcleos precisam compartilhar o mesmo ISA (conjunto de instruções), podendo, por exemplo, incorporar núcleos específicos para IA que só entram em operação quando precisam realizar tarefas específicas, sendo desativados o resto do tempo. Isso permitiria processadores com uma grande contagem de núcleos, como acontece nas placas de vídeo, e que cada tipo de núcleo (ou cluster deles) cuide das operações específicas para as quais foi projetado, novamente melhorando a eficiência com ele.

O multicore heterogêneo tem seus problemas

CPUs Pila

Existem dois “problemas” bastante específicos com processadores multicore heterogêneos em uma plataforma como o PC. O primeiro tem a ver com Overclocking , já que se cada cluster de núcleos trabalhar a uma velocidade e com um multiplicador diferente, não poderemos fazer overclock de todo o processador como tal, mas simplesmente de um grupo específico de núcleos (cluster). Embora seja verdade que a Intel e AMD ainda não revelaram os dados técnicos a respeito. Em qualquer caso, parece lógico pensar que no máximo será possível fazer overclock apenas em determinados clusters de núcleos e não em todos, visto que não são homogêneos.

O segundo problema com arquiteturas heterogêneas é suporte de software , pois afinal o sistema operacional deve ser capaz de suportar este tipo de implementação para atribuir a carga de trabalho aos núcleos corretos. No caso de um Linux núcleo, existem módulos que são responsáveis ​​por gerenciar as frequências de clock do processador ou ativar e desativar núcleos respectivamente, mas o problema com esses módulos é que eles funcionam de forma independente e podem gerar conflitos entre eles, reduzindo a eficiência em alguns casos ou reduzindo o desempenho em outros.

Obviamente, esse tipo de arquitetura está destinado a se popularizar mais cedo ou mais tarde (lembremos da Intel Lakefield e que a AMD também está “brincando” com ela), portanto, levando em consideração que o sistema operacional mais utilizado é Microsoft Windows, teremos que esperar que a Microsoft “coloque as baterias” para adotar esse tipo de arquitetura e ver como ela se comporta.