11Aug
Se você já fez muitas compras de comparação para uma nova CPU, você pode ter notado que os núcleos parecem ter a velocidade em vez de uma combinação de diferentes. Por que é que? O super-usuário Q & Uma publicação tem a resposta para a pergunta de um leitor curioso.
Pergunta de hoje e amp;A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.
A pergunta
Leitor SuperUser Jamie quer saber por que os núcleos de CPU têm a mesma velocidade em vez de diferentes:
Em geral, se você estiver comprando um novo computador, você determinaria qual processador comprar com base na carga de trabalho esperada para o computador. O desempenho nos videojogos tende a ser determinado pela velocidade do único núcleo, enquanto as aplicações como a edição de vídeo são determinadas pelo número de núcleos. Em termos do que está disponível no mercado, todas as CPUs parecem ter aproximadamente a mesma velocidade com as principais diferenças sendo mais threads ou mais núcleos.
Por exemplo:
- Intel Core i5-7600K, frequência de base 3,80 GHz, 4 núcleos, 4 threads
- Intel Core i7-7700K, frequência de base 4,20 GHz, 4 núcleos, 8 threads
- AMD Ryzen 5 1600X, frequência de base 3,60 GHz, 6núcleos, 12 threads
- AMD Ryzen 7 1800X, freqüência base 3.60 GHz, 8 núcleos, 16 threads
Por que vemos esse padrão de núcleos crescentes, contudo todos os núcleos têm a mesma velocidade de clock? Por que não existem variantes com diferentes velocidades de clock? Por exemplo, dois núcleos "grandes" e muitos núcleos pequenos.
Em vez de, digamos, quatro núcleos a 4.0 GHz( ou seja, 4 × 4 GHz, 16 GHz no máximo), e quanto a uma CPU com dois núcleos a 4.0 GHz e quatro núcleos a 2.0 GHz( ou seja, 2 × 4.0 GHz + 4 ×2,0 GHz, 16 GHz no máximo)?A segunda opção seria tão boa em cargas de trabalho simples, mas potencialmente melhor em cargas de trabalho multi-threaded?
Pergunto isso como uma questão geral e não especificamente em relação às CPUs acima mencionadas ou sobre qualquer carga de trabalho específica. Estou apenas curioso sobre por que o padrão é o que é.
Por que os núcleos da CPU têm a mesma velocidade em vez de diferentes?
A Resposta O contribuidor
SuperUser bwDraco tem a resposta para nós:
Isto é conhecido como processamento múltiplo heterogêneo( HMP) e é amplamente adotado por dispositivos móveis. Em dispositivos baseados em ARM que implementam o grande. LITTLE, o processador contém núcleos com diferentes perfis de desempenho e potência, ou seja, alguns núcleos funcionam rápido, mas atraem muito poder( arquitetura mais rápida e / ou relógios mais altos) enquanto outros são eficientes em termos de energia, mas lentos( arquitetura mais lenta e / ou relógios inferiores).Isso é útil porque o uso de energia tende a aumentar desproporcionalmente à medida que você aumenta o desempenho depois de passar um determinado ponto. A idéia aqui é obter o desempenho quando você precisa e a vida da bateria quando você não.
Em plataformas de desktop, o consumo de energia é muito menos um problema, então isso não é realmente necessário. A maioria das aplicações espera que cada núcleo tenha características de desempenho semelhantes e os processos de agendamento para sistemas HMP sejam muito mais complexos do que o agendamento para sistemas tradicionais de processamento múltiplo simétrico( SMP)( tecnicamente, o Windows 10 possui suporte para o HMP, mas destina-se principalmente a dispositivos móveisdispositivos que usam ARM big. LITTLE).
Além disso, a maioria dos processadores de desktop e laptop hoje não estão termicamente ou eletricamente limitados ao ponto em que alguns núcleos precisam ser executados mais rapidamente do que outros, mesmo para rajadas curtas. Nós, basicamente, atingimos um muro sobre a rapidez com que podemos fazer núcleos individuais, de modo que substituir alguns núcleos com mais lentos não permitirá que os núcleos restantes sejam executados com mais rapidez.
Embora existam poucos processadores de desktop que tenham um ou dois núcleos capazes de serem executados mais rapidamente do que os outros, esta capacidade está atualmente limitada a certos processadores Intel de grande gama( conhecida como Turbo Boost Max Technology 3.0) e envolve apenas um ligeiro ganhoem desempenho para os núcleos que podem ser executados mais rapidamente.
Embora seja certamente possível projetar um processador x86 tradicional com núcleos grandes e rápidos e núcleos menores e mais lentos para otimizar as cargas de trabalho altamente enfiadas, isso aumentaria a complexidade do projeto do processador e as aplicações provavelmente não o suportam adequadamente.
Faça um processador hipotético com dois núcleos rápidos de Kaby Lake( 7ª geração) e oito núcleos lentos de Goldmont( Atom).Você teria um total de 10 núcleos, e as cargas de trabalho altamente enfiadas otimizadas para esse tipo de processador podem ver um ganho em desempenho e eficiência em um processador Kaby Lake de quatro núcleos normal. No entanto, os diferentes tipos de núcleos têm níveis de desempenho extremamente diferentes e os núcleos lentos nem suportam algumas das instruções que os núcleos rápidos suportam, como o AVX( o ARM evita esse problema ao exigir que os núcleos grandes e LITTLE sejam compatíveis com as mesmas instruções).
Novamente, a maioria dos aplicativos baseados em Windows multi-threaded assumem que cada núcleo tem o mesmo ou quase o mesmo nível de desempenho e pode executar as mesmas instruções, então esse tipo de assimetria provavelmente resultará em um desempenho menos do que ideal, talvezmesmo falha se ele usa instruções não suportadas pelos núcleos mais lentos. Enquanto a Intel poderia modificar os núcleos lentos para adicionar suporte a instruções avançadas para que todos os núcleos possam executar todas as instruções, isso não resolveria problemas com suporte de software para processadores heterogêneos.
Uma abordagem diferente do design da aplicação, mais próxima do que você provavelmente está pensando na sua pergunta, usaria a GPU para acelerar porções altamente paralelas de aplicativos. Isso pode ser feito usando APIs como OpenCL e CUDA.Quanto a uma solução de chip único, a AMD promove o suporte de hardware para a aceleração de GPU em suas APUs, que combina uma CPU tradicional e um GPU integrado de alto desempenho no mesmo chip, como a Arquitetura do Sistema Heterogêneo, embora isso não tenha visto muita participação da indústria forade algumas aplicações especializadas.
Tem alguma coisa a adicionar à explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.
Crédito de Imagem: Mirko Waltermann( Flickr)