Qual é a diferença entre um núcleo e um processador?
Eu já procurei no Google, mas estou apenas com definição de vários núcleos e processadores, mas não corresponde ao que estou procurando.
Qual é a diferença entre um núcleo e um processador?
Eu já procurei no Google, mas estou apenas com definição de vários núcleos e processadores, mas não corresponde ao que estou procurando.
Respostas:
Um núcleo geralmente é a unidade básica de computação da CPU - ele pode executar um único contexto de programa (ou vários se suportar threads de hardware, como hyperthreading em CPUs Intel), mantendo o estado correto do programa, registros e ordem de execução correta e executando as operações através de ALUs . Para fins de otimização, um núcleo também pode armazenar caches no núcleo com cópias de pedaços de memória usados com freqüência.
Uma CPU pode ter um ou mais núcleos para executar tarefas em um determinado momento. Essas tarefas geralmente são processos e threads de software agendados pelo sistema operacional. Observe que o sistema operacional pode ter muitos threads para executar, mas a CPU pode executar X apenas essas tarefas em um determinado momento, onde X = número de núcleos * número de segmentos de hardware por núcleo. O restante teria que esperar que o sistema operacional os agendasse, antecipando tarefas em execução no momento ou qualquer outro meio.
Além do um ou muitos núcleos, a CPU incluirá alguma interconexão que conecta os núcleos ao mundo externo e, geralmente, também um grande cache compartilhado de "último nível". Existem vários outros elementos-chave necessários para fazer a CPU funcionar, mas seus locais exatos podem diferir de acordo com o design. Você precisará de um controlador de memória para conversar com a memória, controladores de E / S (monitor, PCIe, USB, etc.). No passado, esses elementos estavam fora da CPU, no "chipset" complementar, mas o design mais moderno os integrou à CPU.
Além disso, a CPU pode ter uma GPU integrada e praticamente tudo o que o designer deseja manter por questões de desempenho, energia e fabricação. O design da CPU é principalmente o chamado sistema no chip (SoC).
Esse é um design "clássico", usado pela maioria dos dispositivos de uso geral modernos (PC cliente, servidores e também tablets e smartphones). Você pode encontrar projetos mais elaborados, geralmente na academia, onde os cálculos não são feitos em unidades básicas "do tipo núcleo".
/proc/cpuinfo
, vejo dezesseis processor:
linhas, apesar de dizer model: AMD Ryzen 7 2700X Eight-Core Processor
. Portanto, pelo menos nesse caso, cada um dos 8 "núcleos" possui dois "processadores", o que está em desacordo com algumas outras respostas aqui.
Uma imagem pode dizer mais do que mil palavras:
* Figura que descreve a complexidade de um sistema moderno com vários processadores e vários núcleos.
Fonte:
Open images in new tab
em seguida, ampliar usando cltr
++
Vamos esclarecer primeiro o que é uma CPU e o que é um núcleo, uma CPU de unidade central de processamento, pode ter várias unidades de núcleo, esses núcleos são um processador por si só, capaz de executar um programa, mas é independente no mesmo chip.
No passado, uma CPU era distribuída entre alguns chips, mas como a Lei de Moore progredia, eles criavam uma CPU completa dentro de um chip (matriz), desde os anos 90 o fabricante começou a encaixar mais núcleos na mesma matriz, então esse é o conceito de multi-core.
Atualmente, é possível ter centenas de núcleos nas mesmas GPUs de CPU (chip ou die), Intel Xeon. Outra técnica desenvolvida na década de 90 foi a multithreading simultânea, basicamente eles descobriram que era possível ter outro thread na mesma CPU de núcleo único, uma vez que a maioria dos recursos já era duplicada como ALU, vários registros.
Portanto, basicamente, uma CPU pode ter vários núcleos, cada um deles capaz de executar um thread ou mais ao mesmo tempo, podemos esperar ter mais núcleos no futuro, mas com mais dificuldade para poder programar com eficiência.
CPU é uma unidade central de processamento. Desde 2002, temos apenas um processador de núcleo único, ou seja, realizaremos apenas uma tarefa ou um programa de cada vez.
Por ter vários programas rodando ao mesmo tempo, precisamos usar o processador múltiplo para executar vários processos ao mesmo tempo, por isso precisamos de outra placa-mãe para isso e isso é muito caro.
Portanto, a Intel introduziu o conceito de hyper threading, ou seja, converterá a única CPU em duas CPUs virtuais, ou seja, temos dois núcleos para nossa tarefa. Agora, a CPU é única, mas apenas finge (mascarada) que possui uma CPU dupla e executa várias tarefas. Mas ter múltiplos núcleos reais será melhor do que isso, para que as pessoas desenvolvam o processador multi-core, ou seja, múltiplos processadores em uma única caixa, ou seja, pegando uma CPU múltipla em uma única CPU grande. Ou seja, vários núcleos.
Nos primeiros dias ... como antes dos anos 90 ... os processadores não eram capazes de executar várias tarefas com eficiência ... porque um único processador podia lidar com apenas uma única tarefa ... então, quando costumávamos dizer que meu antivírus, microsoft word, vlc, etc. todos os softwares estão funcionando ao mesmo tempo ... isso não é verdade. Quando eu disse que um processador podia lidar com um único processo de cada vez ... eu quis dizer isso. Na verdade, ele processava uma única tarefa ... então, fazia uma pausa nessa tarefa ... executava outra tarefa ... concluí-a se for curta ou repetida e a adiciona à fila ... e depois à seguinte. Mas essa 'pausa' que mencionei foi tão pequena (aproximadamente 1ns) que você não entendeu que a tarefa foi pausada. Por exemplo. No vlc enquanto ouve música, existem outros aplicativos sendo executados simultaneamente, mas como eu disse ... um programa por vez ...
Mas isso era sobre os antigos processadores ...
Hoje em dia, os processadores, ou seja, os computadores de terceira geração possuem processadores com vários núcleos. Agora, os 'núcleos' podem ser comparados aos processadores de 1ª ou 2ª geração ... incorporados em um único chip, um único processador. Então agora entendemos o que são núcleos, ou seja, são mini processadores que se combinam para se tornar um processador. E cada núcleo pode lidar com um único processo de cada vez ou com vários threads, conforme projetado para o sistema operacional. E eles seguem os mesmos passos que eu mencionei acima sobre o único processador.
Por exemplo. Um processador i7 6gen possui 8 núcleos ... ou seja, 8 mini processadores em 1 i7 ... ou seja, sua velocidade é 8 vezes mais que os processadores antigos. E é assim que as tarefas múltiplas podem ser feitas.
Pode haver centenas de núcleos em um único processador, por exemplo. Intel i128.
Espero ter explicado isso bem.
A imagem da Intel é útil, como mostra a melhor resposta de Tortuga. Aqui está uma legenda.
Processador : Um chip semicondutor, a CPU (unidade central de processamento) instalada em um soquete, entre os anos 1950 e 2010. Com o tempo, mais funções foram incluídas no chip da CPU. Antes dos lançamentos da década de 1950 dos processadores de chip único, um processador poderia ter se espalhado por vários chips. Em meados da década de 2010, os chips de sistema em um chip tornaram um pouco mais superficial equiparar um processador a um chip, embora isso geralmente seja o que as pessoas entendem por processador, como em "este computador tem um processador i7" ou "este sistema de computador" possui quatro processadores ".
Núcleo : Um bloco de uma CPU, executando uma instrução por vez. (Você verá pessoas dizendo uma instrução por ciclo de clock, mas algumas CPUs usam vários ciclos de clock para obter algumas instruções.)