sábado, 15 de outubro de 2011

Transmeta Crusoé

A Transmeta é uma companhia relativamente jovem, que trouxe um novo conceito de processador. A ideia fundamental pode ser definida com as palavras do seu CEO, David Ditze*: “Hoje em dia, no mercado de processadores RISC, temos grandes grupos de designers trabalhando em projectos cada vez mais complexos. A questão da performance está muito menos clara agora. Os processadores RISC não são mais simples e pequenos, não creio que isto faça muito  sentido”...“Processadores superescalares, e execução de instruções fora de ordem são graves problemas que limitam a performance. Processadores RISC como o MIPS R10000 e o HP PA-8000 parecem muito mais complexos para mim do que os processadores CISC, como o Pentium II. Qual então é a vantagem dos processadores RISC, se eles não são mais nem simples nem baratos?” (*Traduzido do original em Inglês.)

Na verdade, os simples e baratos processadores RISC do início da década de 80, acabaram renunciando a seus projetos simples em nome de performance. Os fabricantes acabam adoptando qualquer coisa que possa aumentar a performance de seus chips, mesmo que isso acabe por torná-los mais complexos.

Tratando-se de processadores destinados a PC´s, o AMD Athlon é um exemplo vivo desta característica. Para conseguir desenvolver um processador com todo este desempenho, os projectistas da AMD acabaram optando por desenvolver um processador extremamente complexo, que gera muito calor e consome muita eletricidade. As versões mais rápidas do Athlon chegam a atingir a marca de 80 Watts, uma verdadeira lâmpada de silício. Apesar de consumir um pouco menos de eletricidade (comparando processadores da mesma frequência), o Pentium 4 também não fica atrás em termos de complexidade e número de transístores, pelo contrário, possui uns incríveis 42 milhões de transístores, contra os 35 milhões do Athlon Thunderbird.

A ideia da Transmeta ao desenvolver o seu processador Crusoé é abandonar a ideia de “o mais rápido possível” para criar um projeto “o mais eficiente possível”. Isto significa que o Crusoé não nasceu para ser um processador capaz de gerar 5000 frames por segundo no Quake 3, mas para ser uma alternativa de chip barato, que consome um mínimo de energia e é compatível com a plataforma PC. Um processador perfeito para ser usado em todo tipo de computadores portáteis e, quem sabe, também em desktops nas suas versões futuras. Vamos às características do novo projeto:

Conceito
Os processadores actuais são tão complexos por que executam todas as tarefas via hardware. Isto significa que existem circuitos dedicados para cada tipo de tarefa que o processador seja capaz de executar.

Temos então um conjunto bem complexo, com um decodificador de instruções, que converte as instruções x86 nas instruções processadas internamente pelo processador; um circuito que reordena as instruções, colocando-as em uma ordem em que várias instruções possam ser processadas simultaneamente, um controlador de registadores, execução especulativa, etc. Todos estes recursos permitem aumentar consideravelmente a performance, mas consomem a maior parte dos transístores utilizados nos processadores actuais.

A ideia do Crusoé, é mover estas funções para um software especial, chamado “Code Morphing Software”, algo como “Software de transformação de código”. Como a maior parte das tarefas são executadas via software, é possível ter um processador muito mais simples, com um mínimo de transístores. Perde-se uma parcela considerável do desempenho, mas em troca existe a possibilidade de ganhar bastante em termos de redução de custo, redução do consumo elétrico, etc.

Na foto abaixo, temos uma comparação de temperatura entre um Crusoé (à direita) e um Pentium III Coppermine, ambos exibindo um filme em DVD, sem refrigeração especial (as fotos são cortesia da Transmeta Inc.).
Code Morphing Software
O Crusoé pode ser classificado como um “hybrid software-hardware CPU”, um processador híbrido de hardware e software. Claro que na verdade tudo acaba sendo feito via hardware, mas no Crusoé temos uma camada extra de software, justamente o Code Morphing Software. 

Veja os dois diagramas abaixo. Veja que nos processadores actuais, todas as funções executadas pelo processador são feitas por circuitos dedicados, o que torna o processador muito grande e complexo. Veja que o Crusoé por sua vez é dividido em duas partes. O quadrado maior representa a parte física do processador, enquanto os retângulos separados representam as funções que são executadas via software.
O Code Morphing, o programa que executa a maior parte das funções que outros processadores executam via hardware, fica armazenado numa pequena porção de memória ROM integrada ao processador. Quando o processador é ligado, o code morphing é a primeira coisa a ser carregada, que fica residente na memória RAM, como se fosse um outro programa qualquer, mas com uma prioridade de execução altíssima. São carregados então o BIOS o sistema operacional e demais programas. O Code Morphing fica então residente, funcionando como um intermediário entre a parte física do processador e os programas.

No Crusoé, é o Code Morphing que faz a tarefa de converter as instruções x86 enviadas pelo programa, ordená-las de forma a serem executadas mais rápidamente e coordenar o uso dos registadores, tarefas que em outros processadores são executadas via Hardware.

Todas as instruções traduzidas pelo code morphing são armazenadas num cache especial, chamado translation cache. Este cache ocupa parte dos caches L1 e L2 do processador e também uma área reservada da memória RAM que pode variar de tamanho de acordo com o volume de instruções diferentes processadas.

O uso do translation cache evita que o processador perca tempo traduzindo várias vezes uma instrução muito usada pelo programa. Naturalmente, as instruções que forem sendo mais utilizadas vão assumindo as primeiras posições no cache, enquanto as menos utilizadas vão sendo movidas para a memória RAM ou eliminadas. Outro recurso, é que cada vez que uma instrução é reutilizada a partir do cache, o Code Morphing trata de dedicar mais alguns ciclos de processamento, de modo a optimizá-la cada vez mais. Quanto mais é usada, mais rápido a instrução irá rodar.

Para prevenir possíveis erros de tradução de instruções, existem mais duas pequenas áreas de memória, que servem para armazenar o estado dos registadores do processador a cada bloco de  instruções executado. Como os registadores armazenam tudo o que está sendo processado pelo processador no momento, guardando os dados armazenados nos registadores é possível voltar ao estado anterior caso qualquer erro ocorra, de modo completamente transparente ao sistema operativo e ao utilizador. As duas áreas são chamadas de “Working Copy” e “Shadow Copy”. A work copy, ou cópia de trabalho armazena os dados dos registadores cada vez que um novo bloco de instruções começa a ser processado. Caso tudo ocorra bem, então a copia armazenada na work copy é armazenada na shadow copy (copia sombra); caso ocorra algum erro, a cópia anteriormente é carregada e o Code Morphing Software faz uma nova tradução do bloco de instruções, desta vez usando algoritmos especiais para descobrir que instrução causou o erro, de modo a que não ocorra novamente. Veja que este sistema causa apenas uma pequena perda de tempo cada vez que ocorre um erro, não causa travamentos ou outros efeitos colaterais.

O uso do Code Morphing, traz uma grande flexibilidade ao Crusoé. É possível criar chips compatíveis com várias plataformas diferentes apenas alterando a camada de software, sem ter que alterar um único transístor no processador. Isto torna possível para a Transmeta desenvolver várias versões diferentes do Crusoé para as mais diferentes aplicações.

Consumo eléctrico
Talvez você já tenha ouvido falar de um recurso do mobile Pentium III (uma versão do Pentium III de baixo consumo elétrico destinada a notebooks) que faz com que o processador reduza sua frequência de operação sempre que não estiver sendo muito exigido, de modo a economizar electricidade.

O Crusoé possui um recurso parecido, porém mais avançado. Durante a execução dos programas, o processador pode alterar dinamicamente sua frequência de operação, ajustando-se às demandas do programa. Se tem um Crusoé de 700 MHz, mas no momento o programa só estiver utilizando processamento equivalente a 200 MHz, por exemplo, o processador irá baixar sua frequência de operação e consequentemente o seu consumo eléctrico, mas ficará de prontidão para aumentá-la imediatamente assim que for necessário, de modo transparente ao utilizador. Este recurso é chamado “LongRun technology”.

Isto permite que o Crusoé consuma realmente um mínimo de electricidade. A versão de 700 MHz trabalhando a todo vapor consome pouco menos de 2 Watts. Como na maioria do tempo não é utilizada toda a potência do processador, pode-se imaginar quão pequeno seja o consumo na prática.

O Crusoé traz instigados ao processador também os circuitos de acesso à memória e o controlador PCI, substituindo a porte norte do chipset. Em futuras versões, é possível que o Crusoé traga também controladores de vídeo e som integrados, o que permitiria desenvolver sistemas ainda mais económicos.

As primeiras versões
Inicialmente foram lançadas duas versões do Crusoé, a TM3120 e a TM5420. A primeira possui um desempenho menor, assim como um consumo eléctrico mais baixo, enquanto a segunda consome um pouco mais de electricidade, mas apresenta um desempenho bem superior. 

Veja os recursos apresentados por cada versão:
O Crusoé nasceu como um chip destinado a equipamentos portáteis, já que o seu projeto tem como objectivo baixo consumo eléctrico e baixo custo de produção e, não necessariamente, a performance, como em outros projetos de processadores. Isto não significa que não possam ser lançadas versões do Crusoé destinadas a computadores desktop no futuro, mas sim que este mercado provavelmente nunca será o seu forte.

Para muitos, isto sugere que o Crusoé nunca competirá diretamente com os chips da Intel ou da AMD, mas a realidade é que o mercado de computadores portáteis irá crescer muito nos próximos anos. Calcula-se que dentro de quatro anos, existirão mais computadores portáteis do que micros de mesa e, sem dúvida, a Transmeta saiu na frente na corrida para dominar este nicho de mercado.
Crusoé TM5420
As novas versões
Apesar das vendas da Transmeta ainda estarem muito longe de serem astronómicas, continuam firmes e fortes desenvolvendo novas versões do Crusoé.
 
Depois das duas versões iniciais, a Transmeta lançou duas novas versões chamadas TM5500 e TM5800. As novidades em relação às versões anteriores são muitas. Em primeiro lugar, vem uma vantagem estratégica, que é a adoção de uma técnica de produção de 0.13 mícron. Sem dúvida um avanço importante, já que uma técnica de produção antiga poderia colocar a perder todo o esforço de diminuir o consumo do processador.

O TM5500, a versão mais barata, vem com 256 KB de cache L2, enquanto o TM5800 é equipado com generosos 512 KB de cache. A tensão usada pelos processadores é de 0.9 V a 1.3 V, dependendo da versão. Em ambos os casos foram inicialmente lançadas versões de 600 a 800 MHz.

A voltagem mais baixa ajuda a diminuir ainda mais o consumo. Na verdade, ao diminuir a voltagem de um processador, seu consumo elétrico diminui proporcionalmente, pois é usada menos energia em cada ciclo de clock. Em compensação, é preciso desenvolver o projecto muito cuidadosamente para poder baixar a tensão sem comprometer a estabilidade do processador.

Junto com o aumento na frequência e na quantidade de cache, veio um pequeno aumento no consumo elétrico dos chips. Operando a 800 MHz, o TM5800 consome 6 Watts. Entretanto, este é o consumo do chip operando à plena carga. Graças ao sistema de gerenciamento de energia, a menos que o processador seja usado para alguma tarefa intensiva, compactar vídeos, aplicar filtros gráficos pesados, rodar jogos 3D, etc. o consumo sempre ficará bem abaixo disso, na casa dos 2 ou 3 Watts na maior parte do tempo. Só para efeito de comparação, um Celeron 600, um dos chips mais económicos para PCs de mesa atualmente, consome 15 Watts e os Athlons e Pentiums 4 topo de linha já estão se aproximando da marca dos 100 Watts...

Mais um reforço para os novos chips veio com a nova versão do code morphing software. Como os Crusoé são baseados neste software, é possível melhorar o desempenho dos processadores, ou mesmo diminuir seu consumo elétrico através de melhorias no software. Foi isso que a Transmeta fez.

Os antigos TM5420 rodavam o code Morphing versão 4.1.7, enquanto os atuais rodam a versão 4.2.0. Segundo a Transmeta, a nova versão aumentou o desempenho dos chips em até 28% e possibilitou uma diminuição no consumo elétrico entre 2 e 42%, dependendo do aplicativo (quanto mais intensivo o aplicativo, menor será a economia, já que com o chip trabalhando à plena carga não existe muito o que fazer para economizar energia sem diminuir o desempenho). 

Mais uma novidade é que a Transmeta estava desenvolvendo uma versão de 256 bits do Crusoé, que seria lançada em 2002. No caso do Crusoé, é possível alterar à vontade o design do chip, pois não é preciso manter compatibilidade com as instruções x86, usadas pelos aplicativos actuais, como acontece no caso dos chips Intel e AMD. Na verdade, o processador não roda os aplicativos e sim o code morphing software, é este programa quem se encarrega de "traduzir" as instruções dos programas nas instruções entendidas pelo processador.

Ao alterar a arquitetura do chip, tudo o que é necessário fazer é alterar também o code morphing, para que ele rode sobre a nova arquitetura. Esta é uma vantagem competitiva para a Transmeta, pois seus engenheiros podem incorporar todas as novas ideias e tecnologias no chip, sem precisar se preocupar com a questão da compatibilidade com aplicativos.

Concordo que até agora o Crusoé fez bem pouco, pouquíssimo. As versões actuais chegam a ser 50% mais lentas que um Pentium III da mesma frequência e o baixo consumo eléctrico não é capaz de aumentar perceptivelmente a autonomia de bateria dos notebooks, já que num notebook moderno quem consome mais energia, até 50% do total é o ecrã de LCD de matriz activa. O consumo do processador poderia cair a níveis próximos de zero, que mesmo assim a autonomia das baterias só aumentaria em 20 ou 30%.

Entretanto, o Crusoé já conseguiu também algumas vitórias, por exemplo no ramo de servidores. Como neste tipo de equipamento, geralmente são usados vários processadores, a dissipação do calor começa a tornar-se algo crítico. Ao mesmo tempo, como a maioria das empresas está passando a armazenar os seus servidores em data centers, onde paga-se pelo espaço usado, o Crusoé começou a ser uma solução atractiva, já que gera pouco calor e justamente por isso permite construir servidores pequenos (fisicamente), mas com vários processadores. Várias empresas já vem ganhando dinheiro vendendo servidores equipados com os chips Crusoé.

Na minha opinião, o interessante nos chips Crusoé não são os chips em sí, que comparados com os chips da Intel e AMD actuais em requisitos como desempenho e custo/benefício, podem ser considerados no máximo "regulares", mas sim pela ideia por trás do code morphing software e de outras inovações desenvolvidas pelos engenheiros da Transmeta. Os Crusoés podem não ser lá a melhor opção de compra actualmente, mas a tecnologia usada neles vai mudar muita coisa na indústria e influenciar os futuros processadores. Os fabricantes estão começando a perceber que ao invés de simplesmente socar mais transístores dentro do processador, também é possível melhorar o seu desempenho ou outras características que sejam consideradas importantes, tornando os seus processadores mais inteligentes, como o Crusoé.
in Manual de Hardware Completo
de Carlos E Marimoto

Sem comentários: