Nota Data de publicação do artigo: 26/12/2015. Nos últimos tempos, algumas das teses do autor foram confirmadas por fatos reais, e algumas se mostraram errôneas - aprox. trans.
Nos últimos 40 anos, vimos como a velocidade dos computadores aumentou exponencialmente. As CPUs de hoje têm uma velocidade de clock mil vezes mais rápida que os primeiros computadores pessoais no início dos anos 80. A quantidade de RAM no computador aumentou dez mil vezes e a capacidade do disco rígido aumentou mais de cem mil vezes. Estamos tão acostumados a esse crescimento contínuo que quase a consideramos uma lei da natureza e a chamamos de lei de Moore. Mas há limites para esse crescimento, que o
próprio Gordon Moore apontou . Agora estamos nos aproximando do limite físico, onde a velocidade dos cálculos é limitada pelo tamanho do átomo e pela velocidade da luz.
O relógio canon da Intel começou a pular barras aqui e ali. Cada "tick" corresponde a uma diminuição no tamanho dos transistores, e cada "tick" corresponde a uma melhoria na microarquitetura. A atual geração de processadores, chamada Skylake, é assim com um processo de 14 nanômetros. Logicamente, o próximo deve ser um "tick" com uma tecnologia de processo de 10 nanômetros, mas a Intel agora emite "ciclos de atualização" após cada "assim". O próximo processador, anunciado para 2016, será uma atualização para a Skylake,
ainda com uma tecnologia de processo de 14 nanômetros . Diminuir a velocidade de um relógio Tik-Tak é uma necessidade física, porque estamos nos aproximando de um limite em que o tamanho do transistor é de apenas alguns átomos (o tamanho de um átomo de silício é de 0,2 nanômetros).
Outra limitação física é a taxa de dados, que não pode exceder a velocidade da luz. São necessários vários ciclos de clock para obter dados de uma extremidade da CPU para a outra extremidade. À medida que os microchips aumentam com cada vez mais transistores, a velocidade começa a ser limitada pela transferência de dados no próprio microchip.
Limitações tecnológicas não são a única coisa que atrasa a evolução dos processadores. Outro fator é o enfraquecimento da concorrência no mercado. O maior concorrente da Intel, a AMD, agora está se concentrando mais no que chama de Unidades de Processamento Acelerado (APUs), que são processadores menores com gráficos integrados para mini-PCs, tablets e outros dispositivos ultra-móveis. A Intel assumiu agora a vasta participação de mercado de processadores para PCs e servidores de ponta. A feroz competição entre Intel e AMD, que impulsionou o desenvolvimento de processadores x86 por várias décadas, praticamente desapareceu.
O crescimento da energia do computador nos últimos anos veio não tanto de um aumento na velocidade da computação, mas de um aumento no paralelismo. Os microprocessadores modernos usam três tipos de paralelismo:
- Execução simultânea de várias equipes com alteração de ordem.
- Operações Single-Operation-Multiple-Data (SIMD) em registros vetoriais.
- Vários núcleos de CPU em um único chip.
Esses tipos de simultaneidade não têm limites teóricos, mas existem limites práticos reais. A execução de comandos com uma alteração em sua ordem é limitada pelo número de equipes independentes no código do programa. Você não pode executar dois comandos ao mesmo tempo se o segundo comando estiver aguardando o resultado do primeiro. As CPUs atuais geralmente podem executar quatro comandos ao mesmo tempo. Aumentar esse número não trará muitos benefícios, pois será difícil ou impossível para o processador encontrar instruções mais independentes no código que possam ser executadas simultaneamente.
Os processadores AVX2 atuais têm 16 registros vetoriais de 256 bits. O próximo conjunto de instruções do AVX-512 nos fornecerá 32 registros de 512 bits, e podemos esperar, no futuro, extensões para vetores de 1024 ou 2048 bits. Mas esses aumentos nos registros vetoriais terão cada vez menos efeito. Poucas tarefas computacionais têm paralelismo interno suficiente para se beneficiar desses vetores maiores. Registradores vetoriais de 512 bits são conectados por um conjunto de registros de máscara que têm um limite de tamanho de 64 bits. Os registros vetoriais de 2048 bits podem armazenar 64 números de precisão única de 32 bits cada. Pode-se supor que a Intel não planeja criar registros vetoriais com mais de 2048 bits, pois eles excederão as limitações dos registros de máscara de 64 bits.
Numerosos núcleos de CPU oferecem uma vantagem apenas se houver muitos programas críticos para a velocidade em execução simultaneamente ou se a tarefa estiver dividida em vários threads independentes. O número de threads nos quais você pode dividir com lucro a tarefa é sempre limitado.
Os fabricantes, sem dúvida, tentarão fabricar computadores cada vez mais poderosos, mas qual é a probabilidade de que essa energia possa ser usada na prática?
Há uma quarta possibilidade de simultaneidade que ainda não é usada. Os programas geralmente têm muitas ramificações if-else, portanto, se a CPU aprender a prever qual ramificação funcionará, poderíamos colocá-la em execução. Você pode executar várias ramificações de código de uma só vez para evitar perder tempo se a previsão estiver incorreta. Obviamente, você terá que pagar por isso com um aumento no consumo de energia.
Outra possível melhoria é colocar um dispositivo lógico programável no chip do processador. Uma combinação semelhante agora é comum para os chamados FPGAs, que são usados em equipamentos avançados. Esses dispositivos lógicos programáveis em computadores pessoais podem ser usados para implementar funções específicas para aplicativos específicos, para tarefas como processamento de imagem, criptografia, compactação de dados e redes neurais.
A indústria de semicondutores está experimentando materiais que podem ser usados em vez de silício. Alguns materiais semicondutores III-V podem operar
em tensões mais baixas e em frequências mais altas que o silício , mas não tornam os átomos menores ou mais lentos. Restrições físicas ainda se aplicam.
Um dia, podemos ver chips multicamadas tridimensionais. Isso permitirá apertar o circuito, reduzir a distância e, consequentemente, o atraso. Mas como resfriar efetivamente esse chip quando a energia é distribuída por ele? Novas tecnologias de refrigeração serão necessárias. O microcircuito não poderá transferir energia para todos os circuitos simultaneamente sem superaquecer. Ela precisará manter a maioria das peças desconectadas a maior parte do tempo e fornecer energia a cada peça apenas durante o uso.
Nos últimos anos, a velocidade da CPU aumentou mais rapidamente que a velocidade da RAM, o que geralmente se torna um gargalo sério. Sem dúvida, no futuro, veremos muitas tentativas de aumentar a velocidade da RAM. Um desenvolvimento provável seria colocar a RAM em um único chip com uma CPU (ou pelo menos um caso) para reduzir a distância para a transferência de dados. Este será um uso útil de chips tridimensionais. A RAM provavelmente será do tipo estático, ou seja, a energia será fornecida a cada célula de memória somente quando for acessada.
A Intel também fornece o mercado de supercomputadores para uso científico. O processador Knight's Corner possui até 61 núcleos em um único chip. Tem uma relação desempenho / preço fraca, mas seu sucessor esperado para Knight's Landing deve ser melhor nesse sentido. Ele acomodará até 72 núcleos em um chip e poderá executar comandos com uma alteração em sua ordem. Este é um pequeno nicho de mercado, mas a Intel pode aumentar sua credibilidade.
Agora, as melhores oportunidades para melhorar o desempenho, na minha opinião, do lado do software. Os desenvolvedores de software rapidamente encontraram aplicativos para o crescimento exponencial da produtividade dos computadores modernos, o que ocorreu graças à lei de Moore. A indústria de software começou a usá-lo e também começou a usar ferramentas de desenvolvimento e estruturas de software cada vez mais avançadas. Essas ferramentas e estruturas de desenvolvimento de alto nível tornaram possível acelerar o desenvolvimento de software, mas à custa do consumo de mais recursos de computação como produto final. Muitos dos programas de hoje são um grande desperdício em seu consumo excessivo de poder de computação de hardware.
Ao longo dos anos, observamos uma simbiose entre as indústrias de hardware e software, onde estas produziam produtos cada vez mais avançados e com uso intensivo de recursos que incentivavam os usuários a comprar equipamentos cada vez mais potentes. À medida que a taxa de crescimento da tecnologia de hardware desacelerava e os usuários mudavam para pequenos dispositivos portáteis, onde a capacidade da bateria é mais importante que o desempenho, a indústria de software agora precisa mudar de rumo. Ela precisará reduzir as ferramentas de desenvolvimento que consomem muitos recursos e o software de vários níveis e desenvolver programas que não são tão cheios de funções. O tempo de desenvolvimento aumentará, mas os programas consumirão menos recursos de hardware e funcionarão mais rapidamente em pequenos dispositivos portáteis com duração limitada da bateria. Se a indústria de software comercial não mudar de rumo agora, poderá desistir da participação de mercado em produtos de código aberto mais ascéticos.