O melhor inimigo da humanidade

O ATARI VCS (2600) é um dos grandes exemplos da indústria de tecnologia que demonstra ser possível desenvolver software que entregue muito mais performance do que “teoricamente” o ecossistema em que ele irá “viver” suporta.

A economia da época impossibilitava um mercado de massa a baixo custo, entretanto em um mercado com elevado nível técnico esse tipo de limitação termina se transformando no desafio a se superar.

Para baratear o custo do produto os engenheiros da ATARI utilizaram o processador MOS 6507, que era uma versão mais barata (ainda) do clássico MOS 6502 (o mesmo do AppleII) e que dentre suas limitações tinha um BUS de endereçamento de apenas 13 bits, possibilitando até 8 KBytes de RAM, ao invés dos 16 bits do 6502, capaz de endereçar até 64 KBytes.

Atari 2600 (VCS) block diagram

Tudo isso feito para evitar a utilização de um componente caríssimo na época, que eram as memórias RAM, o que explica também a falta de um FrameBuffer (um dos componentes mínimos mais básicos para se desenvolver alguma saída visual) e também seus apenas 128 BYTES de RAM.

O principal componente que possibilitou essa redução da quantidade de memória no Atari 2600 foi o TIA, que é um chip customizado que podemos sem duvida nenhuma chamar de “coração” do Atari 2600, uma vez que além dos gráficos ele também é o responsável pela geração de sons e da leitura dos joysticks.

Com toda essa capacidade e multiplas funções, o TIA, é naturalmente um componente bastante complexo e dificil de se programar.

Apesar de toda essa limitação, o Atari 2600 foi capaz de entregar obras-primas inimagináveis em um primeiro momento e talvez até mesmo para os dias atuais para computadores cujos recursos são praticamente infinitos.

[]’s
PopolonY2k

Referência na internet

A link to the future

É possível fazer um modelo de plugins que seja capaz de expandir uma tecnologia para fazer muito mais do que ela foi projetada ?

O Super NES (SNES) é a prova de que quando uma arquitetura é projetada focando a expansibilidade e um alto grau de acoplamento futuro, a mesma ultrapassa os limites para a qual fora concebida.

Além da potência superior a qualquer concorrente da época, essa “potência” poderia ser multiplicada futuramente através de expansões via cartucho.

SNES block diagram

A diferença entre o BUS de cartucho do SNES e seu principal concorrente, o Mega Drive, é que os BUSes internos do SNES eram todos interconectados, possibilitando acesso direto entre os chips internos e externos e com isso vários jogos embutiram diversas tecnologias extras ao SNES através do sistema de cartuchos, como co-processadores matemáticos, DSPs, chips compressores/decompressores de dados e até outros processadores capazes de rodar como um “core” independente, inclusive podendo “interromper” um ao outro.

Bom, parece que o segredo sempre foi a “engenharia” das coisas mesmo. 😉


[]’s
PopolonY2k

Referência na internet

https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips

https://hackaday.com/2015/11/06/winning-the-console-wars-an-in-depth-architectural-study/

Genesis capitulo 1, versículo 1

A SEGA nos anos 80 (Nintendo idem) já lidava com o paralelismo e suas implicações de maneira inteligente, padronizada e principalmente estabelecendo os limites a seus players (fabricantes de jogos), através de uma arquitetura de software e hardware com limites muito bem delineados.

O Mega Drive (Genesis) é um excelente exemplo, até nos dias atuais, de como lidar com os componentes lentos (e muitas vezes sensíveis) em uma cadeia de processamento de um sistema compartilhado. O uso de “brute force”, ou poder de processamento exagerado, nem sempre vai resolver a sua lentidão e entregar o melhor resultado.

Mega Drive (Genesis) Block Diagram

No caso do Mega Drive por exemplo existem 2 CPUs extremamente potentes para cada fim, sendo o Motorola 68000 o processador principal e o Zilog Z80 o sequencer de música. Mesmo com todo esse poder de processamento, tanto o 68000 quanto o Z80, serão inúteis se eles entregarem muito mais processamento do que as pontas finais podem processar, nesse caso o Video Display Processor para o 68000 e o YM2612/SN76489 (som) para o Z80, causando distorções indesejadas.

A solução ? Hummm…vamos deixar esse papo para o próximo post ou nos comentários.

Apenas não se esqueça de que a estrutura que carrega a “internet” é exatamente um Mega Drive…só que gigante. 😉

[]’s
PopolonY2k