As unidades centrais de processamento (CPUs) são os cérebros dos nossos computadores. Eles processam tudo o que fazemos diariamente, desde abrir um aplicativo até assistir a um filme. Mas o que exatamente é uma CPU? Como funciona? E qual é a diferença entre CPUs e vCPUs cada vez mais populares?

Entendendo o cérebro dos computadores

Os primeiros computadores eletrônicos foram criados no início de 1800, de acordo com o guia de história completo publicado por G2. No entanto, esses computadores eram grandes e caros, e só podiam ser usados ​​por matemáticos e cientistas treinados.

Charles Babbage é creditado por inventar a primeira máquina de computação, a Máquina Diferencial, que poderia ser programada para realizar qualquer cálculo que pudesse ser feito à mão. No entanto, o projeto da Máquina Diferencial nunca foi concluído por falta de financiamento, de acordo com o Museu de História do Computador.

Em 1937, Babbage mencionou pela primeira vez o Analytical Engine, que se tornaria o primeiro computador mecânico de uso geral do mundo. “A Máquina Analítica incorporou todos os elementos de um computador moderno: uma unidade lógica aritmética, fluxo de controle na forma de ramificações e loops condicionais e memória integrada” (

instagram viewer
Notas Eletrônicas).

Um componente chave do computador de hoje é a CPU ou unidade central de processamento. A CPU é responsável por executar as instruções que lhe são dadas por software, como um sistema operacional ou um aplicativo. Em termos leigos, você pode pensar na CPU como o cérebro do seu computador. A CPU é composta de duas partes principais: a unidade de controle e a unidade lógica aritmética (ALU). Se essas abreviações o confundirem, consulte nosso visão geral de como APUs, CPUs e GPUs diferem.

A unidade de controle é responsável por buscar as instruções da memória, decodificá-las e, em seguida, enviá-las para a unidade lógica aritmética para serem executadas. A ULA realiza operações aritméticas e lógicas sobre dados armazenados em registradores, que são unidades de armazenamento interno dentro da CPU.

Moderno CPUs também contêm um cache, que é uma pequena quantidade de memória de alta velocidade que armazena instruções e dados usados ​​com frequência. Os caches são divididos em níveis; O cache de nível 1 (L1) é embutido na própria matriz da CPU, o cache de nível 2 (L2) fica em um chip separado próximo ao a CPU e o cache de Nível 3 (L3) fica mais longe da CPU em seu próprio chip ou até mesmo em seu próprio circuito quadro.

CPU vs. vCPU

Com o surgimento dos serviços em nuvem, veio o advento da unidade de processamento central virtual, ou vCPU. TechTarget define vCPU como “uma unidade de processamento central (CPU) física que é atribuída a uma máquina virtual (VM)”.

As máquinas virtuais são basicamente sistemas operacionais independentes que são executados dentro de outro sistema operacional como se fossem aplicativos. As VMs são usadas para diversos fins, como testar novos softwares em um ambiente seguro, executar vários sistemas operacionais (por exemplo, Windows e Linux) no mesmo computador ou consolidar vários servidores físicos em um único servidor para economizar espaço e reduzir custos.

Assim, uma vCPU é uma implementação de software de uma CPU; ele não existe fisicamente dentro do seu computador como uma CPU real. O hypervisor, que é o software que cria e gerencia VMs, atribui vCPUs à máquina virtual. Cada vCPU é vista pelo sistema operacional dentro da VM como um núcleo de CPU real. Veja nosso explicação dos hipervisores aprender mais.

No entanto, como as vCPUs são baseadas em software, elas não são tão eficientes quanto as CPUs reais. Portanto, é importante especificar quantos núcleos que seu processador tem quando você está comprando um computador (por exemplo, "quad-core" significa quatro núcleos). A mesma regra se aplica ao escolher um servidor virtual privado (VPS) ou um plano de hospedagem de servidor dedicado.

A principal diferença entre CPUs e vCPUs é que as CPUs são baseadas em hardware, enquanto as vCPUs são baseadas em software. Isso significa que as CPUs existem fisicamente dentro do seu computador, enquanto as vCPUs não; em vez disso, eles são criados por hipervisores quando necessário. Devido a essa diferença na implementação, as CPUs são muito mais eficientes que as vCPUs; eles não têm a sobrecarga associada à execução em software.

Desde o início dos anos 2000, as vCPUs se tornaram cada vez mais populares porque são mais baratas e fáceis de atribuir do que as CPUs físicas; no entanto, se você estiver procurando por desempenho, é melhor usar um computador com vários núcleos de CPU, pois cada núcleo pode processar instruções de forma independente.

Núcleos vs. Tópicos

Uma CPU pode ter um ou mais núcleos, que é a unidade de processamento que executa tarefas em um determinado momento. O núcleo manterá a ordem de execução da tarefa, os registradores e o cache (se aplicável) e realizará as operações via ALU. A CPU controla os núcleos, mas o núcleo executa cada processo de software ou thread que o sistema operacional agenda. Uma thread é uma sequência independente de instruções que podem ser processadas por uma CPU.

Vários threads podem existir dentro do mesmo processo e compartilhar o mesmo espaço de memória. Isso permite que eles se comuniquem mais facilmente do que se estivessem sendo executados em processos separados. Os threads são frequentemente usados ​​para melhorar o desempenho de aplicativos multithread, permitindo que diferentes partes do programa sejam executadas simultaneamente em diferentes núcleos ou processadores.

O termo "thread" tem sido usado na terminologia de computação por muitos anos; no entanto, foi somente no início dos anos 2000 que o suporte em nível de hardware para threads foi introduzido nos processadores. Isso permitiu que vários threads fossem executados simultaneamente em núcleos separados. Anteriormente, apenas um thread podia ser executado por vez em um único núcleo, independentemente de quantos núcleos estivessem presentes no processador. Processadores multicore agora são comuns, e a maioria dos sistemas operacionais oferece algum nível de suporte para execução de programas como vários threads.

Encerrando as questões centrais

Para resumir, as CPUs são os cérebros baseados em hardware de nossos computadores, enquanto suas contrapartes virtuais, vCPUs, são baseadas em software e criadas por hipervisores para serem executadas em máquinas virtuais. Os núcleos são as unidades de processamento baseadas em hardware dentro de uma CPU, enquanto os threads são as instruções baseadas em software que podem ser processadas por uma CPU.

Threads podem ser executadas simultaneamente em núcleos separados, o que permite que diferentes partes do programa sejam executadas ao mesmo tempo. Isso pode melhorar o desempenho do hardware, pois várias tarefas podem ser processadas simultaneamente em vez de sequencialmente.

Agora que você entende a diferença entre CPUs, vCPUs, núcleos e threads, pode tomar uma decisão informada ao escolher um computador ou servidor. Se você procura desempenho, é melhor escolher um computador com vários núcleos de CPU, pois cada núcleo pode processar instruções de forma independente. No entanto, se você estiver procurando por uma solução econômica, as vCPUs podem ser o caminho a seguir.