Articles

HTG Explica: Como Funciona realmente uma CPU?

  • Anthony Heddings

    @anthonyheddings

  • Atualizado em 28 de fevereiro de 2020, 4:58pm EDT
CPU
Rost/

a Maioria das coisas em um computador são relativamente simples de entender: o CARNEIRO, o armazenamento, os periféricos e o software trabalham juntos para fazer um computador funcionar. Mas o coração do teu sistema, a CPU, parece magia mesmo para muitas pessoas da tecnologia. Vamos fazer o nosso melhor para o destruir.

A maior parte da pesquisa para este artigo vem de ” But How Do It Know?”por J. Clark Scott. É uma leitura fantástica, vai em muito mais profundidade do que este artigo vai, e vale bem o par de dólares na Amazon.

Uma NOTA Antes de começarmos: CPUs modernas são ordens de magnitude mais complexas do que o que estamos delineando aqui. É quase impossível para uma pessoa entender cada nuance de um chip com mais de um bilhão de transístores. No entanto, os princípios básicos de como tudo se encaixa permanecem os mesmos, e compreender os princípios básicos lhe dará uma melhor compreensão dos sistemas modernos.

iniciar pequeno

os computadores funcionam em binário. Eles só entendem dois estados: de vez em quando. Para realizar cálculos em binário, eles usam o que é chamado de transistor. O transistor só permite que a corrente de origem flua através dele para o ralo se houver corrente através do portal. Essencialmente, isto forma um interruptor binário, que corta o fio, dependendo de um segundo sinal de entrada.relacionado com

: O Que é binário, e por que os computadores o usam?

publicidade

computadores modernos usam bilhões de transistores para realizar cálculos, mas nos níveis mais baixos, você só precisa de um punhado para formar os componentes mais básicos, conhecidos como gates.

Portas lógicas

Pilha de alguns transistores corretamente, e você tem o que é conhecido como uma porta lógica. Portas lógicas levam duas entradas binárias, executam uma operação sobre eles, e retornam uma saída. O OR gate, por exemplo, retorna verdadeiro se qualquer uma das entradas for verdadeira. A E gate verifica se ambas as entradas são verdadeiras, XOR verifica se apenas uma das entradas é verdadeira, e as n-variantes (NOR, NAND e XNOR) são versões invertidas de suas portas de base.

fazendo matemática com portões

com apenas dois portões você pode fazer adição binária básica. Este diagrama acima mostra um meio adder, criado usando logicamente, um playground online gratuito para portas lógicas. O portão XOR aqui vai ligar se apenas uma das entradas estiver ligada, mas não ambas. O AND gate ligará se ambas as entradas estiverem ligadas, mas fique fora se não houver nenhuma entrada. Então, se ambos estão ligados, o XOR fica desligado, e O AND gate liga, chegando à resposta correta de dois:

anúncio

isto nos dá uma configuração simples com três saídas distintas: zero, um e dois. Mas um pouco não pode armazenar nada superior a 1, e esta máquina não é muito útil, pois só resolve um dos problemas matemáticos mais simples possíveis. Mas este é apenas um meio adder, e se você conectar dois deles com outra entrada, você tem um adder completo:

o dispositivo completo tem três entradas—os dois números a adicionar, e um “carry”.”The carry is used when the final number exceeds what can be stored in a single bit. Adders completos serão ligados em uma corrente, e o carry é passado de um adder para o próximo. O transporte é adicionado ao resultado do portal XOR na primeira metade do adder, e há um extra ou portal para lidar com ambos os casos quando o so que precisa estar ligado.

Quando ambas as entradas estão ligadas, o carry liga – se, e envia-o para o próximo adder completo na cadeia:

E isto é o mais complexo que a adição consegue. Mover-se para mais bits essencialmente apenas significa mais adders completos em uma cadeia mais longa.

publicidade

a maioria das outras operações matemáticas podem ser feitas com adição; a multiplicação é apenas adição repetida, a subtração pode ser feita com alguma inversão de bits extravagante, e a divisão é apenas subtração repetida. E enquanto todos os computadores modernos têm soluções baseadas em hardware para acelerar operações mais complicadas, você pode tecnicamente fazer tudo com o adder completo.

o barramento, e a memória

neste momento, o nosso computador não é mais do que uma má calculadora. Isto é porque ele não pode se lembrar de nada, e não faz nada com suas saídas. Mostrado acima é uma célula de memória, que pode fazer tudo isso. Sob o capô, ele usa um monte de portas NAND, e na vida real pode ser bastante diferente dependendo da técnica de armazenamento, mas sua função é a mesma. Você dá-lhe algumas entradas, liga o’ escrever ‘ bit, e ele vai armazenar as entradas dentro da célula. Isto não é apenas uma célula de memória, pois também precisamos de uma forma de ler a informação dela. Isto é feito com um facilitador, que é uma coleção de e portões para cada bit na memória, todos ligados a outra entrada, o bit “read”. Os bits de escrita e leitura são muitas vezes chamados de “conjunto” e “ativar” também.

Este pacote inteiro está embrulhado no que é conhecido como um registo. Estes registos estão ligados ao barramento, que é um conjunto de fios que rodeiam todo o sistema, ligados a todos os componentes. Mesmo os computadores modernos têm um ônibus, embora eles possam ter vários ônibus para melhorar o desempenho multitarefa.

cada registo ainda tem um bit de escrita e leitura, mas nesta configuração, a entrada e saída são a mesma coisa. Isto é mesmo bom. Por exemplo. Se você quisesse copiar o conteúdo de R1 para R2, você ligaria o bit de leitura para R1, o que empurraria o conteúdo de R1 para o ônibus. Enquanto o bit de leitura Está ligado, você ligaria o bit de escrita para o R2, que copiaria o conteúdo do bus para o R2.

publicidade

registos são usados para fazer RAM também. RAM é frequentemente colocado em uma grade, com fios indo em duas direções:

os decoders tomam uma entrada binária e ativam o fio numerado correspondente. Por exemplo,” 11 ” é 3 em binário, o número mais alto de 2 bits, então o decodificador ligaria o fio mais alto. Em cada cruzamento, há um registo. Todos estes estão conectados ao ônibus central, e a uma entrada central de escrita e leitura. Tanto a leitura como a entrada de escrita só irão ligar se os dois fios que atravessam o registo também estiverem ligados, permitindo-lhe efectivamente seleccionar o registo a partir do qual escrever e ler. Mais uma vez, a RAM moderna é muito mais complicada, mas esta configuração ainda funciona.

o relógio, O Estepador e o descodificador

registos são usados em toda a parte e são a ferramenta básica para mover dados e armazenar informações na CPU. O que lhes diz para mudarem as coisas?

o relógio é o primeiro componente no núcleo da CPU e vai desligar e ligar a um intervalo definido, medido em hertz, ou ciclos por segundo. Esta é a velocidade que você vê anunciada ao lado de CPUs; um chip de 5 GHz pode executar 5 bilhões de ciclos por segundo. A velocidade do relógio é muitas vezes uma métrica muito boa para a velocidade de uma CPU.

publicidade

o relógio tem três estados diferentes: o relógio de base, o relógio de ativação e o relógio de set. O relógio base estará ligado durante meio ciclo, e desligado para a outra metade. O relógio de ativação é usado para ativar os registros e terá que estar ligado por mais tempo para se certificar de que os dados estão ativados. O relógio definido sempre precisa estar ligado ao mesmo tempo que o relógio ativar, ou então os dados incorretos podem ser escritos.

o relógio está ligado ao estepe, que irá contar de um para o passo máximo, e resetar-se de volta para um quando estiver feito. O relógio também está conectado a e portas para cada registro que a CPU pode escrever para:

estas e portas também estão conectadas à saída de outro componente, o decodificador de instruções. O decodificador de instruções toma uma instrução como “SET R2 TO R1” e decodifica-a em algo que a CPU pode entender. Ele tem seu próprio registro interno, chamado de “Registrador de instruções”, que é onde a operação atual é armazenada. Como exatamente ele faz isso se resume ao sistema que você está rodando, mas uma vez que ele é decodificado, ele vai ligar o conjunto correto e ativar bits para os registros corretos, que vai disparar de acordo com o relógio.

as instruções do programa são armazenadas em MEMÓRIA RAM (ou cache L1 em sistemas modernos, mais perto da CPU). Uma vez que os dados do programa são armazenados em registros, assim como todas as outras variáveis, ele pode ser manipulado no momento para saltar em torno do programa. É assim que os programas obtêm a sua estrutura, com loops e declarações if. Uma instrução de salto define a localização atual na memória que o decodificador de instrução está lendo de para um local diferente.

How It All Comes Together

Now, our gross simplification of how a CPU works is complete. O ônibus principal percorre todo o sistema e se conecta a todos os registros. Os adders completos, juntamente com um monte de outras operações, são embalados na unidade lógica aritmética, ou ALU. Esta ALU terá conexões com o ônibus, e também terá seus próprios registros para armazenar o segundo número que está operando.

anúncio

para realizar um cálculo, os dados do programa são carregados a partir da RAM do sistema para a secção de controlo. A secção de controlo lê dois números da RAM, carrega o primeiro no registo de instruções da ALU, e depois carrega o segundo no autocarro. Entretanto, envia ao ALU um código de instruções a dizer-lhe o que fazer. A ALU então realiza todos os cálculos e armazena o resultado em um registro diferente, do qual a CPU pode ler e, em seguida, continuar o processo.

crédito de imagem: Rost9/

Anthony Heddings
Anthony Heddings é o engenheiro de nuvem residente para a LifeSavvy Media, Um escritor técnico, programador e um especialista na plataforma AWS da Amazon. Ele escreveu centenas de artigos para “Como-To Geek” e “CloudSavvy IT” que foram lidos milhões de vezes.Read Full Bio ”