Apesar das melhorias contínuas e atualizações incrementais a cada nova geração, os processadores não experimentam mudanças nos desenvolvimentos no setor há muito tempo. A transição dos tubos de vácuo para os transistores foi enorme. A transição de componentes individuais para circuitos integrados foi enorme. No entanto, mudanças de paradigma semelhantes nesta escala não ocorreram posteriormente.

Sim, os transistores encolheram, os chips estão mais rápidos e o desempenho melhorou cem vezes, mas estamos começando a ver retornos decrescentes ...

Esta é a quarta e última parte de nossa série de design de CPU, dando a você uma visão geral do design e fabricação do processador de computador. Começando de cima para baixo, vimos como o código de computador é compilado em linguagem assembly e como ele é traduzido em instruções binárias que a CPU pode interpretar. Revisamos como os processadores são projetados e as instruções de operação. Em seguida, examinamos as várias estruturas que constituem uma CPU.

Indo um pouco mais fundo, vimos como essas estruturas foram construídas e como bilhões de transistores funcionam juntos em um processador. Vimos como os processadores são fisicamente feitos de silício bruto. Aprendemos o básico sobre semicondutores e a aparência de um chip por dentro. Aqui está um diretório da série, caso você tenha perdido algum deles:

Passamos para a quarta parte. Como as empresas não compartilham suas pesquisas ou detalhes de sua tecnologia atual, é difícil entender exatamente o que está acontecendo na CPU do seu computador. Mas o que podemos fazer é olhar para as pesquisas atuais e para onde a indústria está indo.




Um dos representantes famosos da indústria de processamento é a Lei de Moore. Isso explica como o número de transistores em um chip dobra aproximadamente a cada 18 meses. Isso já é verdade há muito tempo, mas está começando a desacelerar. Os transistores estão ficando tão pequenos que estamos nos aproximando do limite que a física permite. Sem uma nova tecnologia inovadora, teremos que explorar diferentes maneiras de alcançar aumentos de desempenho futuros.




120 anos da Lei de Moore




Uma consequência direta dessa falha é que as empresas começam a aumentar o número de núcleos em vez da frequência para melhorar o desempenho. Esta é a razão pela qual vemos os processadores octa-core se tornarem populares em vez dos chips dual-core de 10 GHz. Além de apenas adicionar mais sementes, não há muito espaço para crescer.




Em uma nota completamente diferente, Computação quântica É uma área que promete muito espaço para crescimento futuro. Não sou um especialista nisso e, como a tecnologia ainda está sendo criada, já não existem muitos "especialistas" reais. Computação quântica, renderização ou algo parecido para dissipar qualquer mito não é algo que fornecerá 1.000 fps na vida real. Por enquanto, a principal vantagem dos computadores quânticos é que eles permitem algoritmos mais avançados que não eram possíveis antes.




Um dos protótipos de computador quântico da IBM

Em um computador convencional, um transistor representando 0 ou 1 está aberto ou fechado. sobreposição é possível, o que significa que o bit pode ser 0 e 1 ao mesmo tempo. Com esta nova habilidade, os cientistas da computação serão capazes de desenvolver novos métodos computacionais e resolver problemas para os quais atualmente não temos recursos computacionais. Os computadores quânticos não são tão diferentes como são mais rápidos, mas sim um novo modelo computacional que nos permite resolver diferentes tipos de problemas.

A tecnologia para isso ainda está a uma ou duas décadas de distância do mainstream, então quais são algumas das tendências que estamos começando a ver nos processadores reais agora? Existem dezenas de áreas de pesquisa ativa, mas irei abordar algumas áreas que são mais influentes.




A tendência de aumento que estamos influenciando computação heterogênea. Esta é uma maneira de incluir vários elementos de computação diferentes em um único sistema. A maioria de nós o utiliza em nossos sistemas como uma GPU dedicada. A CPU é muito personalizável e pode realizar uma grande variedade de cálculos a uma velocidade razoável. Por outro lado, uma GPU é projetada especificamente para fazer cálculos gráficos, como multiplicação de matrizes. Isso é realmente bom e muito maior do que uma CPU nessas instruções. Podemos acelerar a carga de trabalho carregando alguns cálculos gráficos da CPU para a GPU. É fácil para qualquer programador otimizar software alterando um algoritmo, mas otimizar hardware é muito mais difícil.

No entanto, as GPUs não são a única área onde os aceleradores são comuns. A maioria dos smartphones tem dezenas de aceleradores de hardware projetados para acelerar tarefas muito específicas. Este estilo de computação, Sea of ​​Accelerator e exemplos incluem processadores de criptografia, processadores de imagem, aceleradores de aprendizado de máquina, codificadores / decodificadores de vídeo, processadores biométricos e muito mais.

À medida que as cargas de trabalho se tornam cada vez mais especializadas, os designers de hardware estão adicionando mais e mais aceleradores a seus chips. Provedores de nuvem, como a AWS, começaram a fornecer placas FPGA para que os desenvolvedores acelerem suas cargas de trabalho na nuvem. Embora os itens de computação tradicionais, como processadores e GPUs, tenham uma arquitetura interna fixa, o FPGA é flexível. É quase como um hardware programável que pode ser configurado de acordo com as necessidades do seu computador.

Se você quiser fazer reconhecimento de imagem, pode aplicar esses algoritmos ao hardware. Se você deseja simular o desempenho de um novo design de hardware, pode testá-lo no FPGA antes de construí-lo. Um FPGA oferece mais desempenho e eficiência de energia do que as GPUs, mas ainda menos do que um ASIC (circuito integrado de aplicação específica). Outras empresas, como Google e Nvidia, estão desenvolvendo ASICs de aprendizado de máquina personalizados para acelerar o reconhecimento e a análise de imagens.

Die shots mostrando a estrutura de vários processadores móveis comuns

Olhando para o dado de alguns processadores relativamente novos, podemos ver que a maior parte do espaço da CPU não é realmente o próprio núcleo. Uma quantidade crescente é capturada por todos os tipos de aceleradores. Isso, além da enorme vantagem de economia de energia, ajudou a acelerar cargas de trabalho muito específicas.

Historicamente, se você quisesse adicionar processamento de vídeo a um sistema, apenas adicionaria um chip para fazer isso. Ainda assim, isso é bastante ineficiente. Quando um sinal tem que ir de um chip em um fio físico para outro chip, uma grande quantidade de energia é necessária por bit. Por si só, uma pequena porção de um Joule pode não parecer muito, mas pode ser 3-4 magnitude mais eficiente para se comunicar em vez de deixar o chip dentro do mesmo chip. Graças à integração desses aceleradores em CPUs, vimos o crescimento de chips de ultra-baixa potência.

Os aceleradores não são perfeitos. À medida que adicionamos mais aos nossos projetos, os chips se tornam menos flexíveis e começam a sacrificar o desempenho geral pelo mais alto desempenho em determinadas cargas de trabalho. Em algum ponto, o chip inteiro se torna apenas uma coleção de aceleradores e não é mais uma CPU útil. O equilíbrio entre o desempenho específico e o desempenho geral é sempre ajustado com precisão. Essa desconexão entre hardware generalizado e cargas de trabalho específicas, falta de experiência.

Embora alguns possam pensar que estamos no topo de uma bolha de GPU / Machine Learning, provavelmente podemos esperar que mais de nossos cálculos sejam carregados em aceleradores personalizados. À medida que a nuvem e a IA continuam a crescer, as GPUs parecem ser nossa melhor solução para alcançar a enorme quantidade de computação necessária até agora.

Outra área onde os designers buscam mais desempenho é a memória. Tradicionalmente, ler e gravar valores tem sido um dos maiores gargalos para os processadores. Caches grandes e rápidos podem ajudar, mas a leitura da RAM ou do SSD pode levar dezenas de milhares de ciclos de clock. Portanto, os engenheiros frequentemente consideram o acesso à memória mais caro do que a própria computação em si. Se seu processador deseja somar dois números, ele deve primeiro calcular os endereços de memória onde os números estão armazenados, descobrir qual hierarquia de memória possui dados, ler os dados nos registradores, fazer o cálculo, calcular seu endereço. Insira o destino e escreva o valor onde necessário. Para instruções simples que podem levar apenas um ou dois ciclos para serem concluídas, isso é extremamente ineficiente.

Uma nova ideia que recebeu muitas pesquisas, Cálculo de memória de proximidade. Em vez de pegar pequenos pedaços de dados da memória para trazer ao processador rápido para computação, os pesquisadores estão mudando essa ideia. Eles estão tentando construir pequenos processadores diretamente nos controladores de memória em sua RAM ou SSD. Ao aproximar a computação da memória, há um grande potencial de economia de energia e tempo, pois os dados não precisam ser transferidos tanto. As unidades de computação podem acessar diretamente os dados de que precisam, porque estão na memória. Essa ideia ainda está engatinhando, mas os resultados são promissores.

Um dos obstáculos a superar com a computação perto da memória são as limitações do processo de produção. Coberto No capítulo 3O processo de fabricação do silicone é muito complexo, com dezenas de etapas. Esses processos são normalmente especializados para produzir elementos lógicos rápidos ou elementos de armazenamento denso. Se você tentou criar um chip de memória usando um processo de manufatura otimizado computacionalmente, você teria uma densidade muito baixa no chip. Se você tentar construir um processador usando o processo de geração de armazenamento, terá desempenho e tempo muito ruins.

Exemplo de integração 3D mostrando conexões verticais entre camadas de transistores.

Conhecida como uma solução potencial para este problema Integração 3D. Os processadores tradicionais têm uma camada muito grande de transistores, mas isso tem suas limitações. Como o nome sugere, integração 3D é o processo de empilhar várias camadas de transistores umas sobre as outras para aumentar a densidade e reduzir a latência. Colunas verticais construídas em diferentes processos de manufatura podem então ser usadas para ligar as camadas. Essa ideia foi proposta há muito tempo, mas a indústria perdeu o interesse devido às enormes dificuldades de implementação. Recentemente, vimos a tecnologia de armazenamento 3D NAND e ela ganhou vida como um espaço de trabalho.

Além das mudanças físicas e arquitetônicas, uma tendência que afetará toda a indústria de semicondutores é focar mais na segurança. Até recentemente, a segurança em nossos processadores era considerada um pouco mais tarde. Isso é semelhante a como a Internet, o e-mail e muitos outros sistemas em que confiamos são projetados quase sem consideração pela segurança. Qualquer segurança disponível atualmente foi aberta para nos fazer sentir mais seguros. Com os processadores, isso está de volta, especialmente para empresas como a Intel.

Os bugs Specter e Meltdown são talvez o exemplo mais famoso de designers que adicionam recursos que aceleram muito um processador, embora não entendam completamente os riscos de segurança envolvidos. O design do processador atual dá muito mais ênfase à segurança como uma parte importante do design. Com o aumento da segurança, muitas vezes ocorre um impacto no desempenho, mas considerando os danos que esses principais bugs de segurança podem ter, é seguro dizer que é melhor nos concentrarmos na segurança e no desempenho.

No início desta série, abordamos técnicas como a síntese de alto nível, que possui algoritmos avançados que permitem aos designers primeiro especificar seus projetos em uma linguagem de programação de alto nível e, em seguida, determinar a configuração de hardware ideal para executar essa função. À medida que os ciclos de projeto se tornam cada vez mais caros a cada geração, os engenheiros procuram maneiras de acelerar seu desenvolvimento. Espere que essa tendência no design de hardware movido a software continue a aumentar seus recursos na estrada.

Embora seja impossível prever o futuro, as ideias inovadoras e áreas de pesquisa que mencionamos aqui devem servir como um roteiro que podemos esperar em projetos de processadores futuros. O que podemos dizer com certeza é que estamos chegando ao fim das melhorias regulares do processo de produção. Para continuar melhorando o desempenho de cada geração, os designers precisarão encontrar soluções ainda mais sofisticadas.

Esperamos que esta série de quatro partes tenha despertado seu interesse no design, fabricação, validação de processadores e muito mais. Há um material sem fim, e cada um desses artigos poderia preencher um curso universitário de alto nível se tentarmos cobrir todos eles. Espero que você tenha aprendido algo novo e tenha um melhor entendimento de como os computadores são complexos em todos os níveis. Se você tiver sugestões de tópicos nos quais gostaria que aprofundássemos, estamos sempre abertos a sugestões.

Crédito de manchete: Processador de computador Dan74 com iluminação abstrata