Clique e receba as novidades quentinhas no Telegram

A Microsoft portou o Windows 10 e o Linux para o EDGE E2, sua nova arquitetura de processador local em que a empresa passou anos trabalhando, principalmente em segredo.

Assim como os dois sistemas operacionais, os pesquisadores da Microsoft dizem que também portaram o Busybox e o FreeRTOS, além de uma coleção de kits de ferramentas para desenvolver e construir aplicativos para este novo processador:

  • As bibliotecas de runtime padrão C / C++ e .NET Core,
  • O depurador do kernel do Windows,
  • Ferramentas de linha de comando do Visual C ++ 2017 e,
  • O compilador just-in-time do .NET, RyuJIT.

A Microsoft também portou o compilador e depurador LLVM C / C++ amplamente utilizado e as bibliotecas runtime C / C++ relacionadas. A equipe queria demonstrar que os programadores não precisam reescrever seu software para o chipset experimental, basta que os programas sejam recompilados – então, eles estão prontos para usar a nova tecnologia.

O design do E2 é um afastamento radical dos chips de computador projetados pela Intel, Arm, AMD e outros. Ele usa uma arquitetura de conjunto de instruções conhecida como EDGE – Explicit Data Graph Execution ou Execução de Gráfico de Dados Explícito; EDGE, que não deve ser confundida com o navegador Edge da Microsoft.

O desenvolvimento de processadores protótipo E2 na forma de FPGAs – são chips com circuitos reprogramáveis que são normalmente usados durante o desenvolvimento de chips. Por exemplo, existe uma implementação dual-core nos FPGAs da Xilinx, com clock de 50MHz.

A equipe da Microsoft também desenvolveu um simulador de precisão de ciclo capaz de inicializar o Windows e o Linux e executar aplicativos.

Os pesquisadores da Qualcomm estavam avaliando dois projetos de chips EDGE com a Microsoft: um pequeno núcleo R0 e um núcleo R1 de até 2 GHz fabricado usando um processo de 10 nm (nanômetros). O projeto, devemos enfatizar, ainda é um trabalho em andamento dentro da Microsoft.

Como funciona?

Atualmente, um típico processador convencional, parece operar como, digamos, uma máquina de reciclagem de lixo com uma única correia transportadora entrando nela: por exemplo, o lixo (dados) é alimentado, peça por peça, nas mandíbulas da fera que a está consumindo. No interior, há um robô que classifica os resíduos em grupos e os envia por suas próprias correias transportadoras separadas para serem processadas por diferentes partes da máquina. Uma correia levará plásticos, outra copo, outro alimento e assim por diante.

Os processadores de computador, servidor e smartphone de hoje fazem o mesmo, mas, com instruções de software. Tomemos, por exemplo, o Arm Cortex-A76, que divide as instruções buscadas em oito correias transportadoras que vão para o restante do núcleo: quatro para operações matemáticas inteiras, duas para matemática de ponto flutuante e duas para acessar dados na memória. O frontend do núcleo tenta colocar instruções nas correias, então, sempre há algo sendo processado ao longo de cada uma dessas faixas, mesmo que isso signifique executar o código fora de ordem.

Você quer evitar situações em que, por exemplo, uma das unidades matemáticas inteiras esteja ali sem nada para fazer enquanto o trabalho está sendo enfileirado em outras faixas: é um desperdício de recursos. E se uma instrução em uma pista depender da saída de uma instrução por trás dela em outra pista, o processamento será interrompido. Todas essas logísticas são programadas e resolvidas um bilhão de vezes por segundo, então os processadores realizam o trabalho.

No entanto, pode haver uma maneira melhor: o caminho EDGE, como usado no E2 pela Microsoft. Ele funciona dividindo os programas em blocos de instruções simples que podem ser executadas em conjunto com segurança, como transações atômicas sem dependências de dados atrasando o processamento. Dentro do bloco, o código usa seus próprios registros privados, evitando ter que acessar um arquivo de registro global em todo o núcleo. O código também é anotado pelo compilador para descrever o fluxo de dados através do programa, permitindo que a CPU agende blocos de instruções de acordo.

E, crucialmente, com muitas pequenas unidades de execução dentro de um núcleo que processa esses blocos, muitas instruções podem ser executadas de uma só vez. Em vez de oito correias transportadoras, como no Cortex-A76, imagine 32 ou mais, como é o caso do design da Qualcomm R1. O R1 é um blueprint de processador fora de ordem de 32 instruções e o R0 é oito de largura.

No geral, o objetivo desta abordagem e novo design de processador EDGE E2 da Microsoft é executar o software mais rapidamente do que as arquiteturas rivais.

A Microsoft tem trabalhado silenciosamente em processadores EDGE desde aproximadamente 2010 em seus laboratórios de pesquisa. A tecnologia começou a vida, no início dos anos 2000, na Universidade do Texas, em Austin, nos EUA, como TRIPS – o Tera-op, Reliable, Intelligently adaptive Processing System ou Tera-op, Confiável, Sistema de Processamento Inteligentemente Adaptável. O Tera-Op tinha como objetivo de produzir um processador de 1 TFLOPS (Teraflops), que poderia alcançar um trilhão de operações matemáticas de ponto flutuante por segundo. Naquela época, isso era muito veloz, no entanto, os processadores gráficos de hoje e os aceleradores de hardware especializados podem rodar mais rápido do que isso. Somente agora, as CPUs top de linha de propósito geral disponíveis para o seu computador estão se aproximando ou excedendo a barreira dos TFLOPS.

O projeto TRIPS conseguiu produzir e demonstrar um protótipo de chip ambicioso antes que o esforço de pesquisa fosse encerrado até o final da década. O know-how, a experiência e as ideias arquitetônicas do TRIPS entraram nos laboratórios de P & D da Microsoft e foram destilados no que hoje é o projeto E2, que visa superar os núcleos Intel e Arm atuais usando seu novo design.

E agora? 

Embora o desenvolvimento do E2 esteja em andamento há vários anos, três coisas aconteceram neste mês que são significativas. Primeiro, a equipe revelou que o Windows 10 foi transferido para a arquitetura junto com uma grande quantidade de materiais de suporte para desenvolvedores de aplicativos, permitindo que eles criem aplicativos para a plataforma. Em outubro de 2017, os pesquisadores disseram que foram capazes de rodar o Linux.

Em segundo lugar, surgiu que a gigante de design de chips americana Qualcomm estava colaborando com a Microsoft. Terceiro, o site da Microsoft não tem muita informação sobre o E2 – e o que estava online agora não está mais. Na semana passada, curiosamente a Microsoft removeu esta página sobre o trabalho, deixando a URL redirecionar para um outro projeto.

No Simpósio Internacional de Arquitetura de Computadores deste ano, realizado na Califórnia, os pesquisadores da Microsoft Doug Burger e Aaron Smith, junto com Greg Wright, diretor sênior de engenharia da Qualcomm em sua divisão de pesquisa de processadores, subiram ao palco para falar sobre seu trabalho com a arquiteura EDGE e demonstrar o Windows rodando em um simulador E2. Burger co-liderou o projeto TRIPS e supervisionou Smith em seu trabalho de PhD na construção de software para o projeto de CPU, na Universidade do Texas em Austin. Agora, ambos estão no Microsoft Research.

Smith, em sua página no LinkedIn, observou, como gerente de pesquisa principal, a extensão de seus esforços de E2: “Comecei e liderei o projeto E2 na Microsoft Research que está investigando arquiteturas EDGE de próxima geração. Eu desenvolvi o projeto a partir de uma pessoa para uma equipe de dezenas de engenheiros que abrangem várias divisões, empresas e países”.

O conjunto de instruções para a E2 foi finalizado há alguns anos atrás, e é principalmente secreto por enquanto. No entanto, sabemos que cada bloco de código começa com a leitura dos dados dos registradores globais para os registros privados temporários, processa esses dados e, finalmente, grava o resultado de volta nos registradores globais.

A Microsoft tem uma forma de projetar chips: por exemplo, o acelerador matemático em seus óculos de realidade aumentada, HoloLens. Ele também funciona em uma grande quantidade de pesquisas particulares, com alguns projetos entrando em produtos comerciais – como o Drawbridge no SQL Server no Linux – enquanto alguns permanecem em experimentos de laboratório.

Especula-se que este design E2 seja o mais adequado para implementar processadores “soft” em FPGAs.

Quando questionada, um porta-voz da Microsoft informou alguns detalhes adicionais. “E2 é atualmente um projeto de pesquisa, e atualmente não há planos para produzi-lo”, respondeu.

“O E2 tem sido um projeto de pesquisa em que fizemos um monte de engenharia para entender se esse tipo de arquitetura poderia realmente executar uma pilha real, e diminuímos a parceria da Qualcomm desde que as perguntas da pesquisa foram respondidas.”

Quanto ao link removido, o porta-voz acrescentou: “Dado que grande parte do trabalho de pesquisa foi encerrado, decidimos derrubar a página da web para minimizar as suposições de que essa pesquisa estaria em conflito com nossos parceiros de silício existentes.

“Esperamos poder incorporar aprendizados do trabalho em nossa pesquisa contínua”.

Em resumo, a Microsoft pretende quebrar o monopólio da Intel, AMD e ARM com um novo processador e um conjunto de instruções que vai criar uma sinergia perfeita entre hardware e software, algo parecido com a estratégia da Apple, um casamento perfeito entre o hardware e o software dos seus dispositivos. Outro fator importante, o processador estará livre do Spectre ou Meltdown, já que segurança e proteção dos dados são primordiais.

Fonte: TheRegister