terça-feira, 26 de novembro de 2013

Bit wars - Episódio II

32 BITS



Passamos a vez agora às máquinas 32 bits mais famosas, Sega Saturn e a Sony Playstation.
Nota: estou a omitir alguns aparelhos nesta "crónica", principalmente as consolas portáteis e consolas de menor sucesso comercial, porque não considero particularmente relevantes.
Estas duas consolas saíram ambas no mercado em 1994, e foram rivais no processamento em 32 bits e claro, no novo suporte de informação digital, o CD-ROM.
Em características técnicas a Playstation possui uma abordagem relativamente simples.
O processador é baseado no microprocessador MIPS-R3000A 32-bit com velocidade 33.87Mhz. Foi implementado no processador capacidades vectoriais e geometria, muito úteis para processamento 3D. De resto, não há muito a assinalar. No entanto, a simplicidade do hardware e facilidade de programação permitiu ser uma das consolas de maior sucesso da história, e possuir uma das maiores "bibliotecas" de jogos. Por acaso consegui obter a SDK (Software Development Kit) da Playstation (apenas o software, não a máquina de desenvolvimento) e incluiu uma IDE bastante boa, o CodeWarrior da Freescale Semiconductor, todas as livrarias da consola em formato C, exemplos de código e documentação completa.
Quanto à máquina da Sega, infelizmente, porque pessoalmente até gosto bastante da Sega Saturn, o caso complica e de que maneira...
Existem na Sega Saturn oito chips principais, um para periféricos e sistema Hitachi 4-bit, um para processamento de som Yamaha FH1 DSP, um controlador de som Motorola 68EC000 , um controlador para o sistema CD-ROM Hitachi SH-1, dois para gráficos o VDP1 e o VDP2. E finalmente para processador, não um mas dois Hitachi SuperH-2 7604 a 28.63Mhz.
Eis a questão, tem tudo para ser superior não tem? Não, não tem, o hardware embora complexo é aparentemente funcional, mas a complicação tem um grau mais elevado nos CPU's. Na verdade, estes dois CPU's não funcionavam como um dual-core de hoje em dia. Tinham 4KB de cache individual, mas a nível de memória partilhavam o mesmo barramento. No que resultava? Sempre que um CPU acedia à memória o outro não podia aceder, por exemplo. E claro, nem quero pensar na hora do debugging numa máquina destas, devia ser horrível. Resumindo, tornou-se bastante difícil usar os dois processadores de forma eficiente. Hoje em dia o processamento paralelo é amplamente desenvolvido e aplicado, mas à quase 20 anos atrás, não. E a Saturn resultou em ser um inferno para os programadores. Primeiramente pela falta de recursos a nível de software de desenvolvimento facultados pela Sega, e depois pela implementação de código, havendo frequentemente a necessidade de recorrer ao Assembler para aumentar a performance consideravelmente.

64 BITS



Volvidos dois anos da era 32 bits a Nintendo lançou a a famosa Nintendo 64, o que para muitos foi a primeira consola a 64 bits. Mas, em 93 a Atari tinha lançado a Jaguar, a primeiríssima consola de 64 bits. Prometendo capaz de estraçalhar tudo o que aparecesse na frente, esta máquina ostentava os poderosos 64-bits por todo o lado. Mas a verdade é que não era.
O hardware era esquisito e confuso, a Atari dividiu o processamento em quatro áreas, Object Processor, Graphics Processor, Blitter, e DSP (Digital Signal Processor). O que levanta a questão, terá quatro processadores? Não, apenas dois: o Tom e o Jerry :)   (são os nomes oficiais a sério). E tem outro, um Motorola 68000 16/32 bits para controlo de sistema, input/output, coisas assim.
O "Tom" é um processador 32 bits, responsável pelos gráficos, o object processor e de blitter. E o "Jerry", processador 32 bits DSP de som, um processador bastante semelhante ao "Tom" mas com capacidades para o processamento de sinal. E onde estão os 64 bits? Supostamente eles existem na parte do processamento, o "Tom" tem uma ALU (Aritmetic Logic Unit) para processamento gráfico de 64 bits. O resto do processador funciona impecavelmente a 32 bits, mas aqueles 64 bits na ALU era o que precisavam para anunciar a Jaguar como uma consola de 64 bits.
Porque falhou? Razões óbvias, olhem para a consola! Parece um telefone + fax com 64 bits, credo!
Na verdade, com os seus falsos 64 bits, a consola não era assim tão poderosa, aliás, rivalizava com as da época, a geração 16 bits. O hardware era complicado programar, era pouco uniforme dado a natureza "multi-funções" das unidades de processamento, programadores utilizavam o chip de controlo para correr a parte lógica dos jogos por exemplo. No geral, foi um salto maior que o comprimento das patas, e o Jaguar estatelou-se no chão.
Quanto à Nintendo 64, surgiu para rivalizar de certa forma com a Playstation e a Sega Saturn, embora mais vocacionada para um público alvo diferente.
Esta foi mesmo uma consola 64 bits, enquanto as rivais usavam os novos CD's, a Nintendo continuou a usar os cartuchos, embora de capacidade mais limitada, os tempos de carregamento de informação eram bastante mais rápidos.
Veio equipada com um processador NEC VR4300 64-bits a 93,75 Mhz, muito rápido, rivalizava mesmo com o Intel Pentium nos computadores pessoais da altura. E com um GPU Sillicon Graphics RCP, baseado no MIPS 4300i, a 62,5 Mhz.
Para a altura, foi uma consola bastante rápida, e inovadora, os gráficos eram bastante bons, suportando por exemplo trilinear-filtering, mas que com os parcos 4096 bytes máximos de tamanho de textura, resultava no visual esborratado e desfocado que é característico na N64.
Os 64 bits, não eram necessários, mas, por uma questão de marketing e imagem de inovação blá, blá, blá...
Sim, não eram necessários, os jogos muito raramente usaram as capacidades 64 bits do processador, quanto ao espaço de endereçamento um 16 bits chegava, dado que a N64 tinha apenas 4MB de memória.
E além disso, código em 32 bits era mais leve e mais rápido.
Também teve os seus desafios quanto à programação, mas, conseguiu um lugar de honra na história dos video-jogos.

Sem comentários:

Enviar um comentário