Entenda como funciona uma CPU

Discutiremos a computação clássica, mais especificamente, como o processador funciona e o paralelismo do processador. Anterior desta série, discutimos a compressão do transistor, o que nos permitiu criar computadores mais poderosos e eficientes, bem como o fim da lei de Moore, com base na miniaturização do transistor, nos próximos sete a dez anos. Verifique se há contexto para este vídeo.

Agora, neste vídeo, quando falamos sobre desempenho computacional, focamos na computação clássica baseada em CPU. A computação clássica é essencialmente um computador digital; quase todos os dispositivos de computação no mercado hoje são computadores clássicos.

Os computadores clássicos são executados sequencialmente, ou seja, conforme mencionado no primeiro vídeo da série Computing Origins, executando várias instruções extremamente rapidamente em “ordem”, mas parece ao usuário comum que eles são executados em paralelo, o que significa que várias instruções levam tempo.

Isso ocorre devido a muitas otimizações de hardware e software que permitem operação assíncrona. No final deste vídeo, a diferença entre operações paralelas e assíncronas ficará clara, mas primeiro vamos ver como funciona um computador clássico.

Como aviso: os conceitos que discutiremos são uma super generalização da arquitetura computacional, mas, para obter um entendimento abstrato da funcionalidade da computação clássica, tudo ficará bem. Então, primeiro vamos apresentar o processador central, o processador é o cérebro do computador.

Também traremos memória, RAM e é aqui que a CPU obtém acesso às informações armazenadas de que precisa. Agora o processador também possui memória interna, isso é chamado de cache. A memória cache é muito menor que a RAM, com tamanhos de 32 a 8 megabytes.

O objetivo do cache é fornecer imediatamente ao processador as informações necessárias. CPU e RAM são entidades separadas; portanto, quando o processador precisa de informações, leva muito tempo, embora muito pouco, para ler dados da memória. Esse tempo pode adicionar um atraso significativo ao computador. O cache do processador correto pode reduzir esse tempo para quase zero. O motivo de você não precisar de muito cache é porque ele precisa armazenar apenas algumas informações importantes que a CPU precisará usar em um futuro próximo ou que está sendo usada recentemente. Existem vários métodos implementados para determinar o que acontece no cache, o que deve ser armazenado no cache e quando deve ser gravado de volta na RAM. Uma CPU típica possui vários níveis de cache, cada um com diferentes tempos e tamanhos de leitura e gravação, para simplificar, usaremos um cache para nossa CPU. Então, agora com os principais componentes de lado, vamos ver como o computador funciona. Quando o processador executa a instrução, é necessário executar cinco etapas básicas: 1) Extrair: em alguns casos, obter instruções da memória e do cache. 2) Decodificação: obtenha as variáveis ​​apropriadas necessárias para executar a instrução. 3) Execute: calcule o resultado da execução da instrução. 4) Memória: para instruções que requerem uma operação de leitura / gravação na memória. 5) Write Back: escreva os resultados das instruções na memória.

Instruções requerem todas as cinco etapas. Agora, cada etapa executa um ciclo de clock, que se traduz em uma CPI, cinco ciclos de clock por comando. Como uma nota, a maioria dos processadores modernos pode trabalhar com bilhões de ciclos de clock por segundo, por exemplo, um processador com uma freqüência de 3,4 gigahertz pode trabalhar com 3,4 bilhões de pulsos de clock por segundo. O CPI 5 agora é muito ineficiente, o que significa que os recursos do processador são desperdiçados. É por isso que o pipelining foi introduzido, o que levou a operações assíncronas nos cálculos. O pipelining essencialmente permite que você execute cada etapa em um ciclo de clock diferente, traduzindo 5 instruções para 5 ciclos de clock, ou seja, uma instrução por ciclo de clock, uma CPI de 1. Em essência, o pipelining segue as etapas segmentadas da instrução e as executa em cada ciclo do relógio, uma vez que as etapas segmentadas são menores que o tamanho e menos complexas que as instruções regulares, você pode seguir as etapas de outros andes no mesmo ciclo de horas. Por exemplo, se uma etapa da instrução procurar dados, você poderá começar a decodificar outra, executar outra etc. – porque o equipamento usado para essas etapas não está bloqueado. Dutos superescalares aumentam ainda mais esse