Fusion I: a evolução dos gráficos

Author Photo
12:17 pm - 12 de janeiro de 2011

Como e porque as coisas mudaram

O modelo original do PC não tinha gráfico de qualquer espécie. Sua controladora de vídeo era tão simples que controlava igualmente uma impressora (o que, para a época, fazia todo o sentido, já que vídeo e impressora eram os únicos dispositivos de saída do micrinho) e o padrão gráfico era o chamado MDA. Uma coisa tão antiga e tão fora de moda que, vejam vocês, para evitar imprecisões ao citar suas características, ao pesquisar na Internet a sigla “mda”, recebi mais de dez milhões de resultados que (pelo menos nas primeiras páginas) nada tinham a ver com o velho padrão de vídeo. Para consultar os dados que queria tive que entrar com “monochrome graphics display” por extenso, o nome completo do padrão. Que, como indica, usava tela monocromática (os monitores mostravam caracteres verdes ou âmbar) e apenas exibia texto, em 25 linhas de 80 caracteres cada. Veja, na Figura 1, obtida na página da IBM “The IBM PC debut“, o IBM PC, sua impressora matricial e sua tela texto.

[photoframe folder=wp-content/blogs.dir/4/files/phenom-i-1423169707 filename=

Quem quisesse gráficos na tela do PC e, supremo luxo, gráficos coloridos, tinha que adquirir como opcional uma “placa CGA”, ou melhor, uma controladora de vídeo padrão “color graphics array“, capaz de exibi-los em esplendorosas quatro cores e com uma resolução de 200 x 320 pixels (mas quem se contentasse com apenas duas cores poderia aumentar a resolução para 640 x 200). E a placa era cara…

Cara, capaz de exibir gráficos, mas ainda sem um coprocessador gráfico.

Sim, porque a controladora CGA, além de conter a memória de vídeo (16 KB, um absurdo para a época) apenas fazia a interface entre o processador e o monitor, convertendo os sinais digitais gerados pela máquina em analógicos, interpretados pelo velho tubo de imagem. Quem fazia todo o trabalho braçal de “desenhar” os gráficos e determinar a cor de cada pixel era o próprio 8088, o microprocessador do PC.

Quer dizer: o processamento de dados e o processamento gráfico eram feitos juntos no interior do próprio microprocessador, ou UCP, fundidos em uma única unidade de processamento.

Ocorre que ao longo de suas três décadas de vida o velho PC deixou de ser uma maquineta destinada a “fazer contas” e, vá lá, escrever textos, para se transformar em um monstro que “toca” música, exibe fotos em alta definição e “passa” filmes baixados da Internet em tempo real.

Complicou.

Mas complicou agora, porque no tempo do velho PC as coisas eram simples. A imagem da tela era gerada pela UCP (e por “imagem da tela” não me refiro necessariamente a gráficos: o “desenho” de cada caractere e sua posição em uma tela de texto também não deixa de formar uma imagem), suas características, na forma de dados digitalizados, eram transportadas para a controladora de vídeo através do barramento de entrada / saída (E/S), a controladora os convertia em sinais analógicos e os enviava ao monitor, que se encarregava de projetar a imagem na tela.

Tudo era muito simples porque os dados eram poucos. Para “produzir” a imagem de uma tela com 25 linhas de 80 caracteres cada, bastava alinhar sucessivamente os códigos (de um byte cada) de cada caractere (25 x 80 = 2.000) e juntar seus “atributos” (uma dentre as 16 cores disponíveis, além de características como “piscante”, sublinhado, intenso ou reverso) que, juntos, poderiam ser expressos também em um byte. Então, para formar uma tela inteira, usava-se apenas quatro mil bytes, dois por caractere: um para seu código, outro para seus atributos. E como a tela deveria ser renovada sessenta vezes por segundo para não causar a impressão de imagem “tremida”, bastava enviar 60 x 4.000 = 240.000 bytes/s para a controladora. Mais ou menos 240 KB/s.

Se a tela fosse gráfica a coisa complicava um pouco, mas não muito: como o padrão era o CGA, cujas imagens eram formadas por 200 linhas de 320 pontos, e como cada ponto podia exibir quatro cores (cujo código pode ser expresso em apenas dois, ou um quarto de byte), para formar cada tela eram necessários 200 x 320 x 0,25 = 16.000 bytes. Enviá-los para a controladora 60 vezes por segundo exigiria um tráfego pelo barramento de dados de 16.000 x 60 = 960.000 bytes/s, que corresponde a menos de 1 MB/s.

Mais tarde surgiu o padrão VGA, com suas 480 linhas de 640 pontos cada, cuja versão mais simples exibia 16 cores. Veja uma destas telas na Figura 2.

[photoframe folder=wp-content/blogs.dir/4/files/phenom-i-1423169707 filename=

E como esse fluxo de dados se movia? Ora, através do barramento de E/S original do PC, de oito linhas e operando na mesma frequência da UCP, cerca de 5 MHz. Como oito linhas transportam um byte em cada ciclo de operação e o barramento opera a 5 MHz (cinco milhões de ciclos por segundo), sua capacidade de transportar dados chega a 5 MB/s. Basta comparar os 5 MB/s que o barramento pode transportar com o 1 MB/s que uma tela gráfica padrão CGA do velho PC exigia para perceber que o barramento trabalhava com folga.

Agora vamos adiante. E nem é preciso ir muito adiante, só dez anos, até o início dos anos noventa do século passado, quando as interfaces gráficas como Windows passaram a dominar o mercado e acabaram-se as telas texto. Pior: não apenas as telas passaram a ser gráficas como, para que se pudesse distinguir os ícones e os caracteres, a definição tinha que ser muito maior. E apareceu o padrão e SVGA (“super video graphics array“), com suas telas de 768 linhas de 1.024 pontos, cada um deles podendo assumir até 65.526 (64K) cores diferentes, o chamado padrão “high color“.

Para exibir este número de cores, cada ponto da tela requer dois bytes. O total de bytes para formar uma tela SVGA é, portanto, 768 x 1024 x 2 = 1.572.864. Que devem ser enviados sessenta vezes por segundo através do barramento. Basta fazer as contas para concluir que isto demandaria um fluxo de 90 MB/s, muito acima da capacidade de transporte do barramento do PC. E olhe que eu nem mencionei a possibilidade de exprimir cores usando quatro bytes por pontos (o chamado padrão “true color“)

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.