O número máximo de núcleos em um computador. O que é melhor mais núcleos ou frequência do processador? Energia da bateria e vida útil da bateria

O número máximo de núcleos em um computador.  O que é melhor mais núcleos ou frequência do processador?  Energia da bateria e vida útil da bateria
O número máximo de núcleos em um computador. O que é melhor mais núcleos ou frequência do processador? Energia da bateria e vida útil da bateria

Olá a todos! Às vezes, um jogo ou programa não funciona em plena capacidade, porque. Nem todos os núcleos são responsáveis ​​pelo desempenho. Neste artigo, veremos como usar todos os núcleos do seu processador.

Mas não espere uma varinha mágica. se o jogo ou programa não suportar multi-core, então não há nada a ser feito, a menos que o aplicativo seja reescrito.

Como executar todos os núcleos da CPU?

Então, haverá várias maneiras. Por isso eu mostro primeiro.

Vá para iniciar - execute ou as teclas win + r

Escolha o número máximo de processadores.

Então, a propósito, você pode descobrir o número de núcleos do processador. Mas estes são núcleos virtuais, não físicos. O físico pode ser menor.

  • Vamos ao gerenciador de tarefas - ctrl + shift + esc.
  • Ou ctrl+alt+del e gerenciador de tarefas.
  • Ou clique com o botão direito do mouse no painel de controle e selecione gerenciador de tarefas.

Acesse a aba de processos. Encontre o jogo e clique com o botão direito do mouse no processo. A propósito, o jogo deve estar em execução. Você pode recolhê-lo Win + D ou alt + tab.

Escolha combinar.

Selecione tudo e pressione ok.

Para ver se todos os núcleos estão funcionando ou não, no gerenciador de tarefas, vamos para a guia de desempenho.

Em todas as abas haverá um diagrama.

Caso contrário, clique novamente para definir a correspondência, deixando apenas CPU 0, clique em ok. Fechamos o gerenciador de tarefas, abrimos novamente, repetimos tudo, a mesma coisa, selecionamos todos os processadores e pressionamos ok.

Em laptops, a economia de energia às vezes é configurada de tal forma que as configurações não permitem o uso de todos os núcleos.

  • Win7 - Vá para o painel de controle, vá para energia - Altere as configurações do plano - altere as configurações avançadas de energia - gerenciamento de energia do processador - estado mínimo do processador.
  • Win8, 10 - Ou: configurações - sistema - energia e suspensão - configurações avançadas de energia - configurações do plano de energia - alterar configurações avançadas de energia - gerenciamento de energia do processador - estado mínimo do processador

Para uso total, deve ser 100%.

Como verificar quantos núcleos estão em execução?

Iniciamos e vemos o número de núcleos ativos.

Não confunda este parâmetro com o número de processadores virtuais, que são exibidos à direita.

O que afeta o número de núcleos do processador?

Muitas pessoas confundem o conceito de número de núcleos e a frequência do processador. Se compararmos isso com uma pessoa, então o cérebro é um processador, os neurônios são núcleos. Os núcleos não funcionam em todos os jogos e aplicativos. Se, por exemplo, 2 processos estiverem sendo executados no jogo, um desenha a floresta e o outro a cidade e o jogo é multi-core, então apenas 2 núcleos são necessários para carregar esta imagem. E se houver mais processos no jogo, todos os núcleos estarão envolvidos.

E pode ser o contrário, um jogo ou aplicativo pode ser escrito de tal forma que apenas um núcleo possa realizar uma ação, e nesta situação o processador com maior frequência e arquitetura mais bem composta vencerá (esta geralmente é por isso).

Portanto, grosso modo, o número de núcleos do processador afeta o desempenho e a velocidade.

Instrução

Se você tiver um sistema operacional Windows instalado, poderá descobrir quantos núcleos estão em seu processador por meio das propriedades. Para fazer isso, selecione o ícone "Computador" na área de trabalho, pressione Alt + Enter ou clique com o botão direito do mouse e selecione "Propriedades" no menu de contexto.

Uma janela será aberta com informações sobre o sistema operacional, processador, RAM e nome do computador. À direita, haverá links, entre os quais você precisa encontrar o "Gerenciador de dispositivos".

O gerenciador listará o hardware que você instalou. Na lista, encontre o item "Processador" e clique na seta ao lado dele. Uma barra se expandirá mostrando o número de processadores que você possui.

Você pode iniciar o gerenciador de tarefas usando a combinação Ctrl+Shift+Esc. Abra a guia chamada "Desempenho". O número de janelas na seção "Histórico da CPU" corresponde ao número de núcleos em seu processador.

Se o computador tiver a simulação multinúcleo habilitada, o Gerenciador de Tarefas mostrará o número de núcleos simulados. Isso pode ser determinado se todos os núcleos mostrarem exatamente a mesma carga. Então o utilitário gratuito CPU-Z pode ser útil. A guia CPU mostra todas as informações sobre o processador. Na parte inferior há uma janela Core, onde é indicado o número de núcleos.

Você pode usar outro programa PC Wizard gratuito. Ele pode ser baixado do site do desenvolvedor. Instale o programa em seu computador. Execute o arquivo PC Wizard.exe, clique na guia Hardware e depois em Processador. À direita, encontre a seção "Elemento" e nela o número do item principal. A seção Descrição exibe o número de núcleos.

Às vezes, um usuário que deseja melhorar especialmente o desempenho de seu computador se depara com a questão do tipo, frequência e número de núcleos em seu processador. Qualquer pessoa pode obter esta informação, gastando apenas alguns minutos.

Instrução

Se você precisar de informações mais detalhadas sobre o processador e sobre cada um de seus núcleos, precisará instalar programas adicionais. Baixe e instale TuneUp Utilities. Execute o programa. Aguarde enquanto o programa verifica seu computador. No menu superior do programa, selecione a guia "Corrigir problemas". Em seguida, vá para a guia "Mostrar informações do sistema". Uma janela intitulada "Visão geral" aparecerá. Também há informações sobre o número de núcleos do seu processador, mas são apenas superficiais.

Para obter mais informações, clique na guia Dispositivos do sistema. A janela exibirá informações sobre o tipo de processador, a quantidade de memória cache, a versão do BIOS. Preste atenção na janela "Processador". Além de suas características, há uma aba "Detalhes do Processador". Clique nesta guia, após a qual uma janela será aberta com as informações mais detalhadas para cada núcleo do processador. Na janela que aparece, há também uma guia "Recursos". Ao clicar nesta aba, você verá quais tecnologias são suportadas pelo processador e quais não estão disponíveis. Se o processador suportar uma determinada tecnologia, haverá uma marca de seleção verde ao lado de seu nome.

Vídeos relacionados

Quantos núcleos o processador de um computador contém afeta diretamente seu desempenho. Modelos modernos e poderosos dos principais fabricantes têm 3 ou 4 núcleos e, portanto, são funcionais e rápidos. No entanto, as cópias simples de 1 núcleo, devido ao seu preço, ainda não saíram completamente do mercado de equipamentos de informática.

Instrução

Para descobrir quantos núcleos estão no processador do seu PC, vá para o menu "Iniciar" localizado na barra de ferramentas da área de trabalho. Encontre "Meu Computador" e clique com o botão direito nele. Selecione "Gerenciador de tarefas" na lista que se abre. Uma nova janela aparecerá com uma lista de recheios técnicos instalados no computador. Encontre "Processador" na lista e veja informações sobre ele. Ao mesmo tempo, será possível ver como o equipamento funciona corretamente - se algo estiver errado no sistema, um ponto de exclamação ou uma cruz será indicado ao lado do item da lista correspondente.

Se você deseja obter informações mais detalhadas sobre a operação de cada núcleo, baixe qualquer programa especial para o seu computador que verifique o sistema e exiba os resultados da análise. Um exemplo é o TuneUp Utilities.

Após o download do programa, execute-o, aguarde até que ele verifique todos os arquivos necessários. Na parte superior da janela do utilitário, encontre a opção "Corrigir problemas" e nela - a guia "Mostrar informações do sistema". Será aberta a janela "Visão geral", que indicará brevemente as principais informações referentes ao funcionamento do processador.

Para obter um relatório detalhado sobre o tipo de processador, a quantidade de memória cache e a versão do BIOS, use a guia "Dispositivos do sistema" do programa. Além disso, na janela "Processador" há uma guia "Detalhes". Entre nele e, graças às opções disponíveis, você descobrirá quais tecnologias são suportadas pelo processador e quais não estão disponíveis para ele, além de obter informações abrangentes sobre a operação de cada núcleo individual (se houver vários deles no computador).

Se os programas mostrarem a presença de defeitos ou imprecisões na operação dos núcleos e de todo o processador, entre em contato imediatamente com um especialista para obter ajuda - é bem possível que o problema se limite a reinstalar os drivers, mas dessa forma você certamente se proteger de possíveis danos.

Origens:

  • Baixe os utilitários TuneUp

Processador ou CPU (unidade central de processamento) - um dispositivo que processa o código do programa. O desempenho do computador depende principalmente das características do processador. Os chips multi-core são capazes de executar vários fluxos de instruções em paralelo.

Instrução

Você pode determinar o número de núcleos no processador usando as ferramentas do Windows. Inicie o "Gerenciador de Tarefas" usando as teclas de atalho Alt + Ctrl + Delete ou clique com o botão direito do mouse em um espaço vazio na "Barra de Tarefas" e selecione a opção "Gerenciador de Tarefas". Você também pode usar o atalho de teclado Shift+Ctrl+Esc.

Vá para a guia "Desempenho". O número de núcleos do processador geralmente corresponde ao número de janelas exibindo o gráfico de carga na seção "Histórico da CPU". No entanto, esses dados devem ser considerados com cautela. Talvez você tenha kernels habilitados em seu computador, ou seja, imitação de um processador multi-core em um single-core.

Você pode encontrar informações sobre o processador no site do fabricante. Chame o menu drop-down clicando com o botão direito do mouse no ícone "Meu Computador" e selecione a opção "Propriedades". A guia "Geral" exibirá informações básicas sobre o sistema. Reescreva os dados relacionados ao processador, acesse o site do fabricante e encontre os detalhes de seu interesse.

Existe outra maneira: no "Painel de Controle", clique duas vezes em "Ferramentas Administrativas", depois em "Gerenciamento do Computador" e selecione o snap-in "Gerenciador de Dispositivos". Expanda o nó Processadores e sobrescreva os dados.

Você pode descobrir as características técnicas do processador, incluindo o número de núcleos, usando programas de terceiros. Baixe e execute o utilitário gratuito CPU-Z. A guia CPU exibe informações sobre este dispositivo. Na seção inferior, na janela Core, o número de núcleos do processador é relatado.

Outro programa gratuito útil é o PC Wizard. Faça o download do site do desenvolvedor e instale-o em seu computador. Execute clicando duas vezes no lançador PC Wizard.exe e clique no botão "Hardware". Em seguida, clique no ícone "Processador". Na parte direita da janela, na seção "Elemento", localize a linha Número do núcleo e na seção "Descrição" - o número de núcleos.

Agora não é mais surpreendente que um PC tenha mais de um núcleo. E muito provavelmente, em breve chegará o momento em que a produção de computadores de núcleo único deixará de ser desnecessária. E, portanto, hoje é importante saber quantos núcleos seu computador possui. Esse conhecimento permitirá que você entenda se o vendedor da loja de ferragens trapaceou ou se você pode simplesmente mostrar o poder do seu PC para seus amigos. E existem várias maneiras de descobrir quantos núcleos existem em um computador.

Um computador dual-core é um computador cuja unidade central de processamento possui dois núcleos. Essa tecnologia permite aumentar a produtividade de seu trabalho em grande medida.

O que é um processador dual core

Um processador dual-core é um processador que tem dois núcleos na mesma matriz. Cada um dos núcleos, via de regra, possui uma arquitetura Net Burst. Alguns dos processadores dual-core também suportam a tecnologia Hyper-Threading. Esta tecnologia permite o processamento de processos em quatro fluxos independentes. Isso significa que um desses processadores dual-core com essa tecnologia (físico) substitui ou equivale a quatro processadores lógicos, do ponto de vista do sistema operacional.

Assim, cada núcleo de um processador dual-core possui seu próprio cache L2 de uma certa quantidade de memória, além de um cache compartilhado com o dobro de memória. Como regra, os chips nos quais os processadores dual-core são feitos têm cerca de duzentos milímetros quadrados de tamanho com um número de transistores superior a duzentos milhões de unidades. Vale a pena notar que, com um número tão grande de elementos, esse processador, ao que parece, deve gerar uma grande quantidade de calor e, portanto, ser resfriado de acordo. No entanto, não é.

A temperatura mais alta da superfície do cristal é de cerca de 70°C. Isso se deve ao fato de que a tensão que alimenta o processador não excede um volt e meio e a força máxima da corrente é de cento e vinte e cinco amperes. Assim, aumentar o número de núcleos não leva a um aumento significativo no consumo de energia, o que é muito importante.

Benefícios dos computadores com processadores dual-core

A necessidade de aumentar o número de núcleos do processador surgiu quando ficou claro que um aumento adicional em sua frequência de clock não levava a melhorias significativas no desempenho. Computadores com processadores dual-core destinam-se a usar aplicativos que usam processamento de informações multi-thread. Portanto, o benefício de tal computador não é possível para todos os programas. Os programas que usam os recursos de dois núcleos incluem, por exemplo, programas para renderização de cenas tridimensionais, programas para processamento de imagens de vídeo ou dados de áudio. Além disso, um processador dual-core se beneficiará ao executar vários programas em um PC ao mesmo tempo. A esse respeito, esses processadores geralmente são usados ​​em computadores projetados para trabalhar com gráficos, bem como para trabalhar com programas de escritório. Assim, para as necessidades de jogos, essa tecnologia do segundo núcleo é quase inútil.

Vídeos relacionados

Mas com a conquista de novos picos nos indicadores de frequência, ficou mais difícil aumentá-lo, pois isso afetou o aumento do TDP dos processadores. Portanto, os desenvolvedores começaram a aumentar a largura dos processadores, ou seja, adicionar núcleos, e surgiu o conceito de multi-core.

Literalmente 6-7 anos atrás, os processadores multi-core eram praticamente desconhecidos. Não, os processadores multi-core da mesma empresa IBM existiam antes, mas o aparecimento do primeiro processador dual-core para computadores desktop, ocorreu apenas em 2005, e esse processador foi chamado de Pentium D. Além disso, em 2005, o Opteron dual-core da AMD foi lançado, mas para sistemas de servidor.

Neste artigo, não nos aprofundaremos em fatos históricos, mas discutiremos os modernos processadores multi-core como uma das características da CPU. E o mais importante - precisamos descobrir o que esse multi-core oferece em termos de desempenho para o processador e para você e para mim.

Maior desempenho com vários núcleos

O princípio de aumentar o desempenho do processador devido a vários núcleos é dividir a execução de threads (várias tarefas) em vários núcleos. Em resumo, quase todos os processos em execução em seu sistema possuem vários threads.

Farei uma reserva imediata de que o sistema operacional pode criar virtualmente muitos threads para si mesmo e fazer tudo ao mesmo tempo, mesmo que o processador seja fisicamente single-core. Esse princípio implementa a mesma multitarefa do Windows (por exemplo, ouvir música e digitar ao mesmo tempo).


Vamos pegar um programa antivírus como exemplo. Teremos um fluxo escaneando o computador, o outro - atualizando o banco de dados antivírus (simplificamos tudo para entender o conceito geral).

E considere o que acontecerá em dois casos diferentes:

a) Processador de núcleo único. Como duas threads estão rodando ao mesmo tempo, precisamos criar para o usuário (visualmente) essa mesma simultaneidade de execução. O sistema operacional é complicado:há uma alternância entre a execução dessas duas threads (essas alternâncias são instantâneas e o tempo é em milissegundos). Ou seja, o sistema “executou” um pouco a atualização, depois mudou abruptamente para a digitalização e depois voltou para a atualização. Assim, para você e para mim, parece que essas duas tarefas estão sendo realizadas simultaneamente. Mas o que está sendo perdido? Claro, desempenho. Então, vamos olhar para a segunda opção.

b) O processador é multi-core. Nesse caso, essa troca não ocorrerá. O sistema enviará claramente cada thread para um núcleo separado, o que, como resultado, nos permitirá nos livrar da troca de thread para thread que prejudica o desempenho (vamos idealizar a situação). Dois threads são executados simultaneamente, este é o princípio de multi-core e multi-threading. Em última análise, realizaremos verificações e atualizações muito mais rapidamente em um processador multi-core do que em um processador single-core. Mas há um problema - nem todos os programas suportam multi-core. Nem todo programa pode ser otimizado dessa maneira. E tudo acontece longe de ser tão perfeito quanto descrevemos. Mas todos os dias, os desenvolvedores criam mais e mais programas cujo código é perfeitamente otimizado para execução em processadores multi-core.

Os processadores multi-core são necessários? Razoabilidade cotidiana

No escolha do processador para um computador (ou seja, ao pensar no número de núcleos), deve-se determinar os principais tipos de tarefas que ele executará.

Para melhorar o conhecimento na área de hardware de computador, você pode ler o material sobre soquetes do processador .

O ponto de partida pode ser chamado de processadores dual-core, pois não faz sentido retornar às soluções single-core. Mas os processadores dual-core são diferentes. Pode não ser o Celeron "mais" novo, ou pode ser um Core i3 em Ivy Bridge, assim como AMD - Sempron ou Phenom II. Naturalmente, devido a outros indicadores, seu desempenho será muito diferente, então você precisa analisar tudo de forma abrangente e comparar o multi-core com os outros. características do processador.

Por exemplo, o Core i3 no Ivy Bridge possui a tecnologia Hyper-Treading, que permite processar 4 threads simultaneamente (o sistema operacional vê 4 núcleos lógicos, em vez de 2 físicos). E o mesmo Celeron não se gaba disso.

Mas voltemos diretamente às reflexões sobre as tarefas exigidas. Se for necessário um computador para trabalhar no escritório e navegar na Internet, um processador dual-core é suficiente para isso.

Quando se trata de desempenho de jogos, você precisa de 4 núcleos ou mais para se sentir confortável na maioria dos jogos. Mas aqui aparece o problema: nem todos os jogos têm código otimizado para processadores de 4 núcleos e, se forem otimizados, não são tão eficientes quanto gostaríamos. Mas, em princípio, para jogos agora a solução ideal é precisamente o processador de 4º núcleo.


Hoje, os mesmos processadores AMD de 8 núcleos são redundantes para jogos, é o número de núcleos que é redundante, mas o desempenho não está à altura, mas eles têm outras vantagens. Esses mesmos 8 núcleos ajudarão muito nas tarefas em que é necessário um trabalho poderoso com uma carga multithread de alta qualidade. Isso inclui, por exemplo, renderização (cálculo) de vídeo ou computação de servidor. Portanto, para tais tarefas, são necessários 6, 8 ou mais núcleos. E em breve os jogos poderão carregar 8 ou mais núcleos com alta qualidade, então, no futuro, tudo é muito cor-de-rosa.

Não se esqueça de que ainda existem muitas tarefas que criam uma carga de thread único. E você deve se perguntar: preciso ou não desse 8-core?

Resumindo um pouco, gostaria de observar mais uma vez que as vantagens do multi-core se manifestam durante o trabalho multi-thread computacional "pesado". E se você não joga jogos com requisitos exorbitantes e não faz tipos específicos de trabalho que exigem bom poder de computação, gastar dinheiro em processadores multi-core caros simplesmente não faz sentido (

  • tutorial

Neste artigo, tentarei descrever a terminologia usada para descrever sistemas capazes de executar vários programas em paralelo, ou seja, multi-core, multi-processador, multi-thread. Diferentes tipos de paralelismo na CPU IA-32 apareceram em momentos diferentes e em uma ordem um tanto inconsistente. É fácil ficar confuso com tudo isso, especialmente porque os sistemas operacionais têm o cuidado de ocultar detalhes de programas aplicativos menos sofisticados.

O objetivo do artigo é mostrar que com toda a variedade de configurações possíveis de sistemas multiprocessadores, multi-core e multi-threaded para programas executados neles, são criadas oportunidades tanto para abstração (ignorando diferenças) quanto para levar em consideração especificidades ( a capacidade de aprender programaticamente a configuração).

Aviso sobre sinais ®, ™, no artigo

O meu explica por que os funcionários da empresa devem usar marcas de direitos autorais em comunicações públicas. Neste artigo, eles tiveram que ser usados ​​com bastante frequência.

CPU

Claro, o termo mais antigo, mais comumente usado e ambíguo é "processador".

No mundo moderno, um processador é o que compramos em uma bela caixa de varejo ou em um pacote OEM não tão bonito. Uma entidade indivisível inserida em um soquete em uma placa-mãe. Mesmo que não haja conector e não possa ser removido, ou seja, se estiver bem soldado, este é um chip.

Os sistemas móveis (telefones, tablets, laptops) e a maioria dos desktops possuem um único processador. Às vezes, estações de trabalho e servidores possuem dois ou mais processadores na mesma placa-mãe.

O suporte para várias CPUs em um único sistema requer várias alterações de design. No mínimo, é necessário fornecer sua conexão física (fornecer vários soquetes na placa-mãe), resolver os problemas de identificação do processador (veja mais adiante neste artigo, bem como minha nota), coordenando os acessos à memória e entregando interrupções (o controlador de interrupção deve ser capaz de rotear interrupções para vários processadores) e, claro, suporte do sistema operacional. Infelizmente, não consegui encontrar uma menção documentada do momento em que o primeiro sistema multiprocessador foi criado em processadores Intel, no entanto, a Wikipedia afirma que a Sequent Computer Systems os forneceu já em 1987 usando processadores Intel 80386. Suporte generalizado para vários chips em um sistema torna-se disponível a partir de com o Intel® Pentium.

Se houver vários processadores, cada um deles terá seu próprio conector na placa. Ao mesmo tempo, cada um deles possui cópias independentes completas de todos os recursos, como registradores, dispositivos de execução, caches. Eles compartilham uma memória comum - RAM. A memória pode ser conectada a eles de várias maneiras não triviais, mas esta é uma história separada que está além do escopo deste artigo. O importante é que, em qualquer caso, os programas executáveis ​​devem criar a ilusão de uma memória compartilhada homogênea, acessível por todos os processadores do sistema.


Pronto para decolagem! Intel® Desktop Board D5400XS

Testemunho

Historicamente, o multi-core no Intel IA-32 apareceu depois do Intel® HyperThreading, mas vem a seguir na hierarquia lógica.

Parece que, se houver mais processadores no sistema, seu desempenho será maior (em tarefas que podem usar todos os recursos). No entanto, se o custo das comunicações entre eles for muito alto, todo o ganho do paralelismo será eliminado por longos atrasos na transferência de dados comuns. Isso é exatamente o que se observa em sistemas multiprocessados ​​- tanto física quanto logicamente eles estão muito distantes um do outro. Para se comunicar efetivamente em tais condições, barramentos especializados, como o Intel® QuickPath Interconnect, precisam ser inventados. O consumo de energia, tamanho e preço da solução final, é claro, não diminuem com tudo isso. A alta integração de componentes deve vir em socorro - os circuitos que executam partes de um programa paralelo devem ser arrastados para mais perto uns dos outros, de preferência em um chip. Em outras palavras, um processador deve organizar vários núcleos, idênticos entre si em tudo, mas trabalhando de forma independente.

Os primeiros processadores multi-core IA-32 da Intel foram introduzidos em 2005. Desde então, o número médio de núcleos em servidores, desktops e agora em plataformas móveis tem crescido constantemente.

Ao contrário de dois processadores single-core em um mesmo sistema, que compartilham apenas memória, dois núcleos também podem compartilhar caches e outros recursos responsáveis ​​pela interação com a memória. Na maioria das vezes, os caches do primeiro nível permanecem privados (cada núcleo tem seu próprio), enquanto o segundo e o terceiro níveis podem ser compartilhados ou separados. Essa organização do sistema reduz o atraso na entrega de dados entre núcleos vizinhos, principalmente se estiverem trabalhando em uma tarefa comum.


Uma micrografia de um processador Intel quad-core codinome Nehalem. Núcleos separados, um cache L3 compartilhado, bem como links QPI para outros processadores e um controlador de memória compartilhada são destacados.

hyperthread

Até cerca de 2002, a única maneira de obter um sistema IA-32 capaz de executar dois ou mais programas em paralelo era usar sistemas multiprocessadores especificamente. O Intel® Pentium® 4, assim como a linha Xeon, codinome Foster (Netburst), introduziu uma nova tecnologia - hyperthreading ou hyperthreading - Intel® HyperThreading (doravante HT).

Não há nada de novo sob o sol. HT é um caso especial do que é referido na literatura como multithreading simultâneo (SMT). Diferentemente dos núcleos "reais", que são cópias completas e independentes, no caso do HT, apenas uma parte dos nós internos são duplicados em um processador, principal responsável por armazenar o estado da arquitetura - registradores. Os nós executivos responsáveis ​​por organizar e processar os dados permanecem no singular, e a qualquer momento são utilizados por no máximo uma das threads. Assim como os núcleos, os hyperthreads compartilham caches entre si, mas a partir de qual nível depende do sistema específico.

Não vou tentar explicar todos os prós e contras dos designs SMT em geral e dos designs HT em particular. O leitor interessado pode encontrar uma discussão bastante detalhada da tecnologia em muitas fontes e, claro, na Wikipedia. No entanto, observarei o seguinte ponto importante, que explica as atuais restrições sobre o número de hyperthreads em produção real.

Limites de thread
Em que casos se justifica a presença de multi-core "desonesto" na forma de HT? Se um thread de aplicativo não puder carregar todos os nós em execução dentro do kernel, eles poderão ser "emprestados" para outro thread. Isso é típico para aplicações que possuem um "gargalo" não nos cálculos, mas no acesso aos dados, ou seja, muitas vezes gerando faltas de cache e tendo que esperar que os dados sejam entregues da memória. Durante este tempo, o kernel sem HT será forçado a ficar inativo. A presença de HT permite alternar rapidamente os nós de execução livre para outro estado de arquitetura (porque está apenas duplicado) e executar suas instruções. Este é um caso especial de um truque chamado ocultação de latência, quando uma operação longa, durante a qual recursos úteis estão ociosos, é mascarada pela execução paralela de outras tarefas. Se o aplicativo já tiver um alto grau de utilização dos recursos do kernel, a presença de hyperthreading não permitirá a aceleração - kernels "honestos" são necessários aqui.

Cenários típicos para aplicativos de desktop e servidor projetados para arquiteturas de máquina de uso geral têm o potencial de paralelismo implementado usando HT. No entanto, este potencial é rapidamente "esgotado". Talvez por esse motivo, em quase todos os processadores IA-32, o número de hyperthreads de hardware não exceda dois. Em cenários típicos, o ganho do uso de três ou mais hyperthreads seria pequeno, mas a perda no tamanho da matriz, consumo de energia e custo é significativa.

Outra situação é observada em tarefas típicas realizadas em aceleradores de vídeo. Portanto, essas arquiteturas são caracterizadas pelo uso da tecnologia SMT com um número maior de threads. Como os coprocessadores Intel® Xeon Phi (introduzidos em 2010) são ideológica e genealogicamente muito próximos das placas de vídeo, eles podem ter quatro hyperthreading em cada núcleo - uma configuração exclusiva do IA-32.

processador lógico

Dos três "níveis" de paralelismo descritos (processadores, núcleos, hyperthreadings), alguns ou mesmo todos eles podem estar faltando em um determinado sistema. Isso é afetado pelas configurações do BIOS (multi-core e multi-threading são desabilitados independentemente), recursos de microarquitetura (por exemplo, HT estava ausente do Intel® Core™ Duo, mas foi trazido de volta com o lançamento do Nehalem) e eventos do sistema (servidores com vários processadores podem desligar processadores com falha em caso de mau funcionamento e continuar a "voar" nos restantes). Como esse zoológico de simultaneidade de várias camadas é visível para o sistema operacional e, em última análise, para os aplicativos?

Além disso, por conveniência, denotamos o número de processadores, núcleos e threads em algum sistema por um triplo ( x, y, z), Onde xé o número de processadores yé o número de núcleos em cada processador, e zé o número de hyperthreads em cada núcleo. A seguir, vou me referir a este trio topologia- um termo estabelecido que tem pouco a ver com a seção de matemática. Trabalhar p = xyz define o número de entidades nomeadas processadores lógicos sistemas. Ele define o número total de contextos de processos de aplicativos independentes em um sistema de memória compartilhada executando em paralelo que o sistema operacional deve considerar. Digo "forçado" porque não pode controlar a ordem de execução de dois processos que estão em processadores lógicos diferentes. Isso também se aplica aos hyperthreads: embora sejam executados "sequencialmente" no mesmo núcleo, a ordem específica é ditada pelo hardware e não é visível ou controlada por programas.

Na maioria das vezes, o sistema operacional oculta dos aplicativos finais os recursos da topologia física do sistema no qual está sendo executado. Por exemplo, as três topologias a seguir: (2, 1, 1), (1, 2, 1) e (1, 1, 2) - o sistema operacional será representado como dois processadores lógicos, embora o primeiro deles tenha dois processadores , o segundo tem dois núcleos e o terceiro tem apenas dois threads.


O Gerenciador de Tarefas do Windows mostra 8 processadores lógicos; mas quanto é isso em processadores, núcleos e hyperthreads?


O topo do Linux mostra 4 processadores lógicos.

Isso é bastante conveniente para os criadores de aplicativos aplicados - eles não precisam lidar com recursos de hardware que geralmente são insignificantes para eles.

Definição de software de topologia

É claro que, em alguns casos, abstrair a topologia em um único número de processadores lógicos cria motivos suficientes para confusão e mal-entendidos (em disputas acaloradas na Internet). Os aplicativos de computação que desejam obter o máximo de desempenho do hardware exigem controle refinado sobre onde seus threads serão colocados: mais próximos em hyperthreads adjacentes ou vice-versa, mais distantes em diferentes processadores. A velocidade de comunicação entre processadores lógicos dentro do mesmo núcleo ou processador é muito mais rápida que a velocidade de transferência de dados entre processadores. A possibilidade de heterogeneidade na organização da RAM também complica o quadro.

Informações sobre a topologia do sistema como um todo, bem como a posição de cada processador lógico no IA-32, estão disponíveis usando a instrução CPUID. Desde o advento dos primeiros sistemas multiprocessadores, o esquema de identificação lógica do processador foi estendido várias vezes. Até o momento, partes dele estão contidas nas folhas 1, 4 e 11 do CPUID. Qual das folhas a observar pode ser determinada a partir do seguinte diagrama de blocos, retirado do artigo:

Não vou me aborrecer aqui com todos os detalhes das partes individuais desse algoritmo. Se houver interesse, a próxima parte deste artigo pode ser dedicada a isso. Remeto ao leitor interessado, no qual este assunto é analisado com o maior detalhe possível. Aqui vou primeiro descrever brevemente o que é APIC e como ele se relaciona com a topologia. Em seguida, considere trabalhar com a folha 0xB (onze em decimal), que atualmente é a última palavra em “apico-building”.

ID APIC
Local APIC (controlador de interrupção programável avançado) é um dispositivo (agora parte do processador) responsável por trabalhar com interrupções que chegam a um processador lógico específico. Cada processador lógico tem seu próprio APIC. E cada um deles no sistema deve ter um valor de ID APIC exclusivo. Esse número é usado por controladores de interrupção para endereçamento ao entregar mensagens e por todos os outros (como o sistema operacional) para identificar processadores lógicos. A especificação para este controlador de interrupção evoluiu do Intel 8259 PIC para Dual PIC, APIC e xAPIC para x2APIC.

No momento, a largura do número armazenado no APIC ID atingiu os 32 bits completos, embora no passado fosse limitado a 16 e, antes, a apenas 8 bits. Hoje, os resquícios dos velhos tempos estão espalhados por todo o CPUID, mas todos os 32 bits do APIC ID são retornados em CPUID.0xB.EDX. Cada processador lógico que executa independentemente a instrução CPUID retornará um valor diferente.

Clarificação dos laços familiares
O valor APIC ID por si só não diz nada sobre a topologia. Para descobrir quais dois processadores lógicos estão dentro do mesmo físico (ou seja, eles são “irmãos” de hyperthreads), quais dois estão dentro do mesmo processador e quais são processadores completamente diferentes, você precisa comparar seus valores de APIC ID. Dependendo do grau de relacionamento, alguns de seus bits serão correspondentes. Essas informações estão contidas nas sublistas CPUID.0xB, que são codificadas com um operando em ECX. Cada um deles descreve a posição do campo de bits de um dos níveis de topologia em EAX (mais precisamente, o número de bits que precisam ser deslocados no APIC ID para a direita para remover os níveis inferiores da topologia), bem como como o tipo deste nível - hyperthread, core ou processador - no ECX.

Os processadores lógicos dentro do mesmo núcleo corresponderão a todos os bits de ID APIC, exceto aqueles no campo SMT. Para processadores lógicos que estão no mesmo processador, todos os bits, exceto os campos Core e SMT. Como o número de subfolhas para CPUID.0xB pode crescer, esse esquema dará suporte à descrição de topologias com um número maior de níveis, se necessário no futuro. Além disso, será possível introduzir níveis intermediários entre os já existentes.

Uma consequência importante da organização deste esquema é que no conjunto de todos os APIC IDs de todos os processadores lógicos do sistema podem existir "buracos", ou seja, eles não irão seqüencialmente. Por exemplo, em um processador multi-core com HT desabilitado, todos os APIC IDs podem ser pares, pois o bit menos significativo responsável pela codificação do número do hyperthread será sempre zero.

Observe que CPUID.0xB não é a única fonte de informações sobre processadores lógicos disponíveis para o sistema operacional. A lista de todos os processadores disponíveis para ele, juntamente com seus valores APIC ID, é codificada na tabela MADT ACPI.

Sistemas operacionais e topologia

Os sistemas operacionais fornecem informações de topologia de processador lógico para aplicativos por meio de suas próprias interfaces.

No Linux, as informações de topologia estão contidas no pseudo-arquivo /proc/cpuinfo, bem como na saída do comando dmidecode. No exemplo abaixo, estou filtrando o conteúdo de cpuinfo em algum sistema quad-core não HT, deixando apenas entradas relacionadas à topologia:

Texto oculto

[e-mail protegido]:~$ cat /proc/cpuinfo |grep "processador\|físico\ id\|irmãos\|core\|cores\|apicid" processador: 0 id físico: 0 irmãos: 4 núcleo id: 0 cpu núcleos: 2 apicid: 0 apicid inicial: 0 processador: 1 id físico: 0 irmãos: 4 core id: 0 cpu núcleos: 2 apicid: 1 inicial apicid: 1 processador: 2 físico id: 0 irmãos: 4 core id: 1 cpu núcleos: 2 apicid: 2 apicid inicial: 2 processador: 3 id físico: 0 irmãos: 4 core id: 1 núcleos de CPU: 2 apicid: 3 apicid inicial: 3

No FreeBSD, a topologia é relatada através do mecanismo sysctl na variável kern.sched.topology_spec como XML:

Texto oculto

[e-mail protegido]:~$ sysctl kern.sched.topology_spec kern.sched.topology_spec: 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7 0, 1 Grupo THREADgrupo SMT 2, 3 Grupo THREADgrupo SMT 4, 5 Grupo THREADgrupo SMT 6, 7 Grupo THREADgrupo SMT

No MS Windows 8, as informações de topologia podem ser vistas no Gerenciador de Tarefas.

Boa tarde, caros leitores do nosso technoblog. Hoje não temos um review, mas uma espécie de comparação, qual processador é melhor 2 core ou 4 core? Eu me pergunto quem se mostra mais legal em 2018? Então vamos começar. Digamos de imediato que na maioria dos casos o palm irá para um dispositivo com um grande número de módulos físicos, mas chips com 2 núcleos não são tão simples quanto parecem à primeira vista.

Muitos provavelmente já adivinharam que consideraremos todos os representantes atuais da Intel da família Pentium Coffee Lake e o popular “hyperstump” G4560 (Kaby Lake). Quão relevantes são os modelos no ano atual e vale a pena pensar em comprar AMD Ryzen mais produtivo ou o mesmo Core i3 com 4 núcleos.

A família AMD Godavari e Bristol Ridge não é deliberadamente considerada por uma simples razão - ela não tem mais potencial, e a própria plataforma acabou não sendo a mais bem sucedida, como era de se esperar.

Muitas vezes, essas soluções são compradas por ignorância ou “para troca” como uma espécie de montagem mais barata para a Internet e filmes online. Mas não estamos particularmente satisfeitos com este estado de coisas.

Diferenças entre chips de 2 e 4 núcleos

Considere os principais pontos que distinguem a primeira categoria de chips da segunda. No nível de hardware, você pode ver que apenas o número de unidades de computação difere. Em outros casos, os núcleos são unidos por um barramento de troca de dados de alta velocidade, um controlador de memória comum para um trabalho frutífero e eficiente com a RAM.

Muitas vezes, o cache L1 de cada núcleo é um valor individual, mas L2 pode ser o mesmo para todos ou também individual para cada bloco. No entanto, neste caso, o cache L3 é usado adicionalmente.

Em teoria, as soluções de 4 núcleos devem ser mais rápidas e poderosas em 2 vezes, pois realizam 100% mais operações por clock (tomaremos frequência, cache, processo de fabricação e todos os outros parâmetros idênticos como base). Mas, na prática, a situação muda completamente de forma não linear.

Mas aqui vale a pena prestar homenagem: no multithreading, toda a essência dos 4 núcleos é totalmente revelada.

Por que os processadores de 2 núcleos ainda são populares?

Se você observar o segmento móvel da eletrônica, poderá ver o domínio de 6 a 8 chips nucleares, que parecem o mais orgânicos possível e são carregados em paralelo ao executar todas as tarefas. Por que é que? Os sistemas operacionais Android e iOS são sistemas bastante jovens e com alto nível de concorrência e, portanto, a otimização de cada aplicativo é a chave para o sucesso na venda de dispositivos.

Com a indústria de PCs, a situação é diferente, e aqui está o porquê:

Compatibilidade. Ao desenvolver qualquer software, os desenvolvedores se esforçam para agradar o público novo e antigo com hardware fraco. Há mais ênfase em processadores de 2 núcleos em detrimento do suporte de 8 núcleos.

Paralelização de tarefas. Apesar do domínio da tecnologia em 2018, fazer um programa funcionar com vários núcleos de CPU e threads em paralelo ainda não é fácil. Se se trata de calcular vários aplicativos completamente diferentes, não há perguntas, mas quando se trata de cálculos em um programa, já é pior: você deve calcular regularmente informações completamente diferentes, sem esquecer o sucesso das tarefas e a ausência de erros nos cálculos.

Nos jogos, a situação é ainda mais interessante, pois é quase impossível dividir os volumes de informações em “compartilhamentos” iguais. Como resultado, temos a seguinte imagem: uma unidade de computação está 100% lubrificada, as 3 restantes aguardam sua vez.

Continuidade. Cada nova solução é baseada em desenvolvimentos anteriores. Escrever código do zero não é apenas caro, mas também muitas vezes não lucrativo para o centro de desenvolvimento, porque "as pessoas terão o suficiente, e os usuários de chips de 2 núcleos ainda são a parte do leão".

Tomemos por exemplo muitos projetos de culto como Lineage 2, AION, World of Tanks. Todos eles foram criados com base em mecanismos antigos que podem carregar adequadamente apenas um núcleo físico e, portanto, apenas a frequência do chip desempenha o papel principal nos cálculos.
Financiamento. Nem todos podem se dar ao luxo de criar um produto completamente novo, projetado não para 4.8, 16 threads. É muito caro e, na maioria dos casos, injustificado. Tomemos por exemplo o mesmo GTA V cult, que vai “comer” tanto 12 quanto 16 threads sem problemas, sem falar nos núcleos.

O custo de seu desenvolvimento ultrapassou uns bons 200 milhões de dólares, o que por si só já é muito caro. Sim, o jogo foi um sucesso, pois a credibilidade da Rockstar entre os jogadores era enorme. E se fosse uma startup jovem? Aqui você já entende tudo.

Os processadores multi-core são necessários?

Vejamos a situação do ponto de vista de um simples leigo. A maioria dos usuários está satisfeita com 2 núcleos pelos seguintes motivos:

  • necessidades baixas;
  • a maioria dos aplicativos funciona de forma estável;
  • os jogos não são uma prioridade;
  • baixo custo de montagem;
  • os próprios processadores são baratos;
  • a maioria compra soluções prontas;
  • alguns usuários não têm ideia do que estão vendendo nas lojas e se sentem bem.

É possível jogar em 2 núcleos? Sim, sem problemas, o que a linha Intel Core i3 até a 7ª geração provou com sucesso por vários anos. Também muito popular foi o Pentium Kaby Lake, que pela primeira vez na história introduziu suporte para Hyper Threading.
Devo agora comprar 2 núcleos, embora com 4 threads? Exclusivamente para tarefas de escritório. A era desses chips está desaparecendo gradualmente e os fabricantes começaram a mudar massivamente para 4 núcleos físicos completos e, portanto, você não deve considerar o mesmo Pentium e Core i3 Kaby Lake a longo prazo. A AMD abandonou completamente 2 núcleos.