O que a CPU é responsável

CPU - Qual é o elemento mais importante de um PC responsável por
O computador é um companheiro sofisticado e familiar nas nossas vidas. Apesar da sua utilização generalizada, o seu funcionamento continua a ser um mistério para muitas pessoas. Um computador é composto por uma placa-mãe, uma fonte de alimentação, um disco rígido, memória RAM, uma placa gráfica e um processador. Por vezes, também está presente uma unidade de disquetes, mas este elemento deve ser considerado um complemento antigo, uma vez que as disquetes estão gradualmente a deixar de ser utilizadas.
Hoje vamos dar especial atenção ao processador. Pois a CPU, ou Unidade Central de Processamento, é o componente mais importante responsável pelo processo de computação em todo o sistema. O aspeto da CPU é mais ou menos este:

Mas este é o aspeto que tem já na tomada da placa-mãe. A isto chama-se uma tomada. Todas as placas-mãe têm um soquete. O único objetivo do soquete é ser uma ranhura para o processador. A cobertura de alumínio da CPU na imagem acima é necessária para proteger e armazenar a pequena pedra de silício. Se removeres esta tampa de alumínio, verás aproximadamente o seguinte:

Dois triângulos sujos de uma substância incompreensível são o processador do computador. A substância incompreensível é a cola que prende a tampa do processador à pedra de silício. Esse triângulo minúsculo é a base para um trilião de transístores. E os transístores são minúsculos interruptores do tamanho de uma molécula. Os transístores têm apenas uma função - respondem "sim" ou "não" ao computador, comunicando com ele em código binário.
O código binário são os uns e os zeros que se podem ver em The Matrix ou em qualquer outro truque informático, de hacking ou de alta tecnologia. O transístor em si não resolve nada. A sua força reside na quantidade e no tamanho. Ao microscópio, um transístor funciona da seguinte forma:

Como existem triliões de transístores, cada milímetro do processador é responsável por apenas uma função. Alguns grupos de transístores são responsáveis pela saída do ecrã, outros pela lógica e outros ainda pela navegação.

Nos jogos de vídeo, o processador desempenha o papel de condutor de sombras. Controla o movimento dos objectos no ecrã, a física e a lógica. Já reparou que, quando algo explode no ecrã durante um jogo, os fragmentos voam em todas as direcções, o local da explosão fica envolto em chamas e o jogo fica mais lento quando explode? Isto acontece porque o processador tem dificuldade em dizer a cada um dos fragmentos para se moverem corretamente. Os efeitos climáticos como a chuva, o nevoeiro, as trovoadas, o vento, a água e a vegetação são todos geridos pelo processador. Nos jogos de mundo aberto de qualidade, os criadores fazem um esforço colossal para que a relva se amasse sob os pés das personagens e as cabeças das sementes de dente-de-leão se soltem e se movam ao vento. Estas ninharias não serão deliberadamente notadas por 99,99% dos jogadores. Mas são pequenas coisas como essas que tornam os mundos convincentes. O processador, por outro lado, não só tem de reparar nessas coisas, como também tem de obedecer ao algoritmo para as fazer.
No software de desenho e animação 3D, o processador executa as mesmas tarefas, mas do avesso: enquanto nos jogos o processador executa um algoritmo pré-escrito, no software memoriza-o. É comparável ao trabalho de casa de uma criança na escola - aprender um poema. Aprender um poema de cor e recitá-lo de forma expressiva em frente a um quadro negro são duas tarefas mentais diferentes, mas que se referem ao mesmo processo.
Para além de jogar jogos, o processador também está envolvido noutros cálculos. Um computador não compreende o discurso humano, nem é capaz de apanhar a meio e pensar de forma criativa, apenas sob instruções rigorosas. O processador também tem essas instruções. Dezenas, se não centenas, de instruções foram escritas ao longo dos anos de existência do PC. Quando o processador recebe uma tarefa, procura essa instrução e actua estritamente de acordo com ela.

As instruções são necessárias para literalmente tudo: para os sistemas operativos, para trabalhar com aplicações. Processadores diferentes têm instruções diferentes. É por isso que as aplicações para smartphones podem não funcionar num computador - não existe uma instrução correcta.
Mas uma instrução é o primeiro passo do computador para o processador. Uma instrução é um comando "Como", e agora o computador precisa de dizer ao processador o "O quê". O sistema operativo do PC não pode controlar o processador diretamente, pelo que utiliza threads de execução. Estas threads têm um calendário de acções e funcionam como uma espécie de intérprete. Os processos são a principal tarefa do empregador para o empregado, e as threads são a lista de acções para executar os processos.

Digamos que um chefe no trabalho pede a um subordinado que imprima o plano de trabalho do mês seguinte e o pendure no escritório. O empregado sabe que isso requer uma visita ao departamento de contabilidade para obter papel, entra no escritório com a fotocopiadora, descarrega o ficheiro para o computador e clica em "Imprimir", pega nas cópias e pendura-as no quadro. No exemplo, "Imprimir plano de trabalho" é um processo, enquanto "visitar o departamento de contabilidade...", "ir ao escritório com a fotocopiadora", etc., são fluxos. - são fluxos.
Mas é aqui que entra em ação outro truque do processador - a previsão de ramos. Em termos leigos, a previsão de ramificação é a execução prematura de uma tarefa antes de a própria tarefa ser submetida. Desta forma, o processador poupa preciosos nanossegundos. Uma rede neural faz este trabalho complexo. A rede neural está constantemente a ser melhorada para obter um sucesso claro na execução preemptiva de tarefas. Uma execução incorrecta ou, pior ainda, a execução da tarefa errada faz com que o processador tenha de construir a previsão de novo.
Mas, em termos simples, a previsão de ramificação pode ser comparada a uma situação em que um empregado já imprimiu o plano de trabalho do próximo mês na segunda-feira. Na quarta-feira, o patrão dá a ordem: "Ter o plano de trabalho afixado no quadro até sexta-feira". O trabalhador finge começar a tarefa enquanto finge que a faz ele próprio, jogando solitário no computador do trabalho. Mas se na segunda-feira o empregado escrever por engano não o plano de trabalho para o próximo mês, mas sim "comprar: ovos, cenouras, manteiga, cerveja e batatas fritas para o Campeonato Europeu", e depois o colocar no quadro do escritório, o chefe não vai entender esse humor e vai obrigá-lo a fazer tudo de novo.
E por último, mas não menos importante, o processador multithread ou SMT. Mais uma vez, o trabalho de escritório é um exemplo tão bom como qualquer outro. Na cena acima referida, com a impressão do plano do mês seguinte, não estavam presentes apenas o patrão e o empregado. De facto, o patrão tinha muitos empregados. Deu a cada um deles uma pequena tarefa, que é como funcionam as empresas. O nosso empregado imprimiu o plano do mês seguinte, outro telefonou aos investidores e um terceiro é responsável pela rotação dos documentos. Mas nenhum deles se ocupa das tarefas dos seus colegas até que o chefe o autorize. O mesmo acontece num processador: os processos controlam a forma como as threads fazem o seu trabalho no pipeline do processador. Para este efeito, os processadores com SMT têm um módulo de hardware que monitoriza se outra thread pode ser adicionada à thread atual. Desta forma, as threads trabalham numa tarefa de cada vez. A taxa de sucesso destes "trabalhadores" no processador é medida em hertz.

Mesmo os processadores modernos não conseguem realizar todas as tarefas ao mesmo tempo. A elevada velocidade de relógio permite alternar entre tarefas tão rapidamente que é impossível dar por isso.