CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779
SISTEMAS DE VÍDEO – PLACA DE VÍDEO A função básica de uma placa gráfica é transformar a informação processada pelo computador em sinais digitais que o monitor seja capaz de interpretar e exibir graficamente em sua tela. Na curta história dos PCs sucederam-se diversos padrões gráficos que, progressiva-mente, foram aumentando tanto a resolução como o número de cores que o monitor pode exibir. Entre esses padrões destacam-se especialmente o VGA (Video Graphics Array, matriz gráfica de vídeo), lançado no mercado pela IBM em 1987, que desbancou todos os anteriormente existentes. A base das atuais placas gráficas é uma evolução técnica do padrão VGA. Por esse motivo, muitas delas, por ultrapassar em muito a qualidade do clássico VGA, adotam a sigla SVGA (Super Video Graphic Array) como integrante de seu nome. O adaptador gráfico que realiza a mediação entre o PC e o monitor chama-se placa gráfica porque, por norma, oco mputador o incorpora por meio de uma placa de expansão do tipo PCI ou AGP. Em alguns computadores os circuitos e componentes da placa gráfica são integrados na placa-mae.
O QUE É A RESOLUÇÃO E COR?
O sucesso dos sistemas operacionais equipados com interface gráfica provocou um importante desenvolvimento no campo das placas gráficas. As características essenciais de qualquer placa gráfica são a resolução e a profundidade de cor. A expressão “resolução gráfica” indica o tamanho, expresso em pontos ou pixeIs, da imagem gerada pela placa gráfica. A resolução gráfica é o fator que determina o nível de detalhe da imagem que é representada na tela do monitor. Na tela, cada imagem é constituída por linhas horizontais compostas por um determinado número de pontos. Esses pontos. que formam a imagem, são os pixels. A denominação “pixel” origina-se dos termos em inglês Plcture (imagem) e Element (elemento) — pixel é o elemento mínimo constituinte de uma imagem de computador. Mas é importante não confundir os pixels que formam a imagem gerada pelo computador com os pequenos pontos que representam essa imagem na tela do monitor. Um pixel gerado pela placa gráfica traduz-se habitualmente em vários pontos sobre a superfície de fósforo da tela. A resolução gráfica de uma tela geralmente é indicada pela largura e pela altura da tela do monitor, medidas em pixels. Geralmente, a resolução de tela, quando se trata de um monitor trabalhando em um ambiente gráfico como o do Windows, é de 640 x 480, de 800 x 600 ou ainda de 1.024 x 768 pixels, embora, dependendo das características específicas de cada placa gráfica, também possam ser empregadas outras resoluções. No interior do PC, os dados que compõem a imagem exibida na tela são armazenados e processados decompostos em pixels. A resolução empregada determina a quantidade de pixels que o sistema deverá gerenciar para poder exibir a imagem na tela. Multiplicando-se a largura pela altura da resolução empregada obtém-se o número total de pixels que compõem a imagem na placa gráfica. Por exemplo: 640 x 480 pixels = 307.200 pixels. Além da resolução ou tamanho da tela, costuma-se indicar a profundidade de cor. Esse valor representa a quantidade de bits que armazenam a cor de um pixel e, portanto, a quantidade de Use Input – Consultoria
Página 121
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779 cores ou tonalidades diferentes que cada um deles poderá ter. Quanto mais bits forem empregados para definir a cor de cada pixel, tanto maior será o número de cores que podem ser exibidas, o que significa também uma maior quantidade de dados que o sistema deverá gerenciar. Por exemplo, uma profundidade de cor de 8 bits indica que cada pixel pode exibir 256 diferentes cores; com 1 6 bits de informação por pixel podem ser alcançadas até 65.536 cores distintas. As placas gráficas podem trabalhar com diferentes modos de cor na tela, ou seja, com diferentes combinações de resolução e profundidade. Como se verá mais adiante, essas placas possuem uma certa quantidade de memória, na qual armazenam e tratam as imagens que geram. Essa memória, conhecida como memória de vídeo, determina, segundo sua capacidade, a resolução máxima e o número máximo de cores que a placa pode gerenciar. O tamanho total da memória exigida por cada modo gráfico depende dos dois fatores, a profundidade de cor e a resolução de tela. Como mostra a tabela da página anterior, são necessários 2.304 KB de memória de vídeo para exibir uma resolução de 1 .024 x 768 pixels e 24 bits de cor. Para alcançar essa resolução e esse número de cores, portanto, uma placa gráfica deve contar necessariamente com mais de 2 MB de memória de vídeo.
COMO É A ACELERAÇÃO GRÁFICA? As primeiras placas gráficas limitavam-se a atuar como ponte entre o bus do sistema e o monitor. Os ambientes e aplicativos gráficos, por operar com uma quantidade cada vez maior de dados, aumentaram o consumo dos recursos do PC, atrapalhando os demais processamentos que o sistema precisava executar. Por essa razão, as placas gráficas começaram a experimentar uma rápida evolução, destinada a acelerar o gerenciamento do material gráfico sem precisar contar com o microprocessador. Como resultado, surgiram as primeiras placas gráficas aceleradas. Uma placa acelerada caracteriza-se, basicamente, pelo fato de incorporar uma série de componentes que lhe permitem funcionar de forma autônoma, para livrar o microprocessador e o bus do sistema da pesada carga gráfica suportada atualmente por qualquer PC. Uma placa desse tipo costuma ser equipada com um ou vários processadores gráficos especializados, memória de vídeo, bus interno de alta capacidade e, inclusive, um BIOS que assegura seu funcionamento. Os sistemas operacionais gráficos, como o Windows, possuem bibliotecas e funções de uso compartilhadas por todos os programas. Entre as primeiras estão, por exemplo, as APIs (Application Program Interface, interface de programa aplicativo), que facilitam o aproveitamento de funções como a aceleração gráfica. A forma de o sistema operacional aproveitar o desempenho das placas aceleradoras consiste, primordialmente, na codificação das operações gráficas. Por exemplo, quando o Windows deve mover uma janela de um lugar a outro na tela, uma placa sem aceleração exige que o microprocessador transfira o conteúdo da zona da memória de vídeo, com os pixels que formam a janela, até sua nova localização. Isso faz com que qualquer outro processamento em execução, como a leitura ou a gravação de um arquivo no disco rígido, torne-se muito lento. O modo de operação das placas aceleradoras varia de caso a caso. Em primeiro lugar, nem todas podem realizar as mesmas modalidades de operações gráficas. Por esse motivo, as APIs que, como o DirectDraw, são incorporadas no SO atuam como filtros, recebendo as instruções gráficas que todos os programas lhes enviam e determinando quais podem ser enviadas e executadas diretamente pelo processador da placa acelerada. Quando um programa ou o próprio Windows precisa mover uma janela, o DirectDraw verifica se a placa pode acelerar essa operação levando em conta todas as funções que seu controlador encontra. Se a placa não puder executar diretamente a instrução, o SO encarrega-se de emular um processador gráfico recorrendo ao processador do sistema, como acontece com as placas gráficas sem aceleração. Ao contrário, se a placa puder executar diretamente a instrução, o próprio processador gráfico, com a ajuda da memória de vídeo (à qual está conectado por um bus dedicado), cuida do deslocamento do bloco de memória que contém os dados dos pixels que formam a janela. Graças a isso, o processador do sistema não precisa dedicar parte de seu tempo de processamento a essa tarefa, o que resulta num considerável aumento da velocidade e do desempenho do computador. Use Input – Consultoria
Página 122
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779
COMO É A ARQUITETURA E FUNCIONAMENTO DE PLACAS DE VÍDEO? Uma placa gráfica compõe-se essencial-mente de um processador especializado, BIOS, memória de vídeo e RAM DAC ou DAC (Digital to Analog Converter, conversor digital a analógico). Todos esses componentes estão localizados numa placa de circuito impresso que os interliga e, além disso, possibilita sua conexão com o slot de expansão PCI ou AGP. O processador gráfico interpreta e desenha as janelas, botões, letras e qualquer outro elemento que apareça na tela do monitor. Tal como ocorre com o micro-processador do sistema, ele funciona com uma freqüência de relógio que determina, em grande medida, seu desempenho. Até muito pouco tempo atrás, os processadores gráficos eram bastante especializados em tarefas 2-D ou 3D. Atualmente, porém, todos os processadores incorporam funções de aceleração 3-D e proporcionam desempenho muito bom em ambos os ambientes. Exatamente como acontece com o processador do sistema, o da placa gráfica necessita de um BIOS para poder ser micializado e desenvolver suas funções básicas. Graças à proliferação das memórias Flash, o BIOS de muitas placas aceleradoras pode, tal como o controlador do 50, ser facilmente atualizado. Nas placas que não possuem processador gráfico a memória desempenha uma única função: reter a informação que deve ser exibida na tela. Em conseqüência, seu tamanho é Determinado pela resolução máxima e pelo número de cores que podem ser utilizadas. Ao contráno, as placas dotadas de microprocessador exigem memória para seu funcionamento. Não surpreende que algumas placas gráficas possuam grande quantidade de memória (8 ou 16 MB): além de usá-la para armazenar o conteúdo das imagens, empregam-na como cache ou buffer, em especial ao representar cenas em 3-D. Embora pouco conhecido, o DAC ou RAM DAC é um componente muito importante da placa gráfica. Esse chip ou circuito integrado encarrega-se de converter os dados digitais armazenados na memória de vídeo em sinais analógicos que o monitor representa na tela. O DAC costuma possuir uma freqüência de atualização (refresh), que indica o número de vezes por segundo com que ele é capaz de renovar o sinal analógico que fornece ao monitor. Quanto mais alta for a freqüência de atualização do DAC, tanto maior será a da placa gráfica.
COMO SE FAZ A INTEGRAÇÃO 2-D E 3-D ? A aceleração gráfica das funções relacionadas ao sistema operacional e ao gerenciamento de mapas de bits é considerada aceleração gráfica 2-D. Atualmente, quase todas as placas gráficas contam com potentes microprocessadores gráficos e também com grande quantidade de memória de vídeo. Esses fatores permitiram que as placas gráficas aceleradoras convencionais adquirissem novas funções, como no caso da aceleração 3-D. Tal como acontece com as funções gráficas do Windows, a aceleração 3-D consiste em aliviar o microprocessador de uma grande parte dos cálculos que ele precisaria efetuar para representar objetos e ambientes tridimensionais em tempo real. Embora as placas aceleradoras possuam processadores gráficos especializados, grande quantidade de memória de vídeo e buses internos dedicados, sua conexão ao bus do sistema continua sendo de grande importância. O envio de informação ou as instruções que deve executar, da memória RAM à placa gráfica, compartilham o bus do sistema com a informação dos demais periféricos e componentes. Atualmente, as placas gráficas são vendidas como placas de expansão para bus PCI ou AGP. Desde o surgimento do processador Pentium II, o AGP é o que vem tendo maior difusão. Diversamente do bus PCI, o AGP transporta apenas informação gráfica, razão pela qual conecta diretamente a placa, pelo bus do sistema, com o microprocessador e a memória a uma freqüência mais alta que o PCI. Além dessa conexão direta com o bus do sistema, o AGP incorpora outras funções cuja missão principal é acelerar as funções gráficas 3-D. Por exemplo, uma das características do bus AGP é Use Input – Consultoria
Página 123
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779 sua capacidade de acessar diretamente a memória SDRAM a velocidades de transferência muito altas. Com algumas limitações, uma placa AGP pode empregar memória do sistema como memória de vídeo incorporada na placa. Isso contrasta com a grande quantidade de memória de vídeo que todas as placas desse tipo possuem, sem aproveitar a memória do sistema. Elas operam dessa maneira porque, para melhorar e acelerar a representação de material gráfico 3-D, a memória do sistema é empregada unicamente como apoio eventual, para armazenar texturas de grande tamanho. De qualquer forma, uma placa gráfica em versões para buses PCI e AGP apresenta no caso do bus AGP uma ligeira melhora em seu desempenho. Esse incremento decorre da possibilidade de a placa beneficiar-se de uma melhor comunicação com o bus do sistema, embora, em contrapartida, isso signifique reduzir, de modo proporcional, o desempenho do bus PCI e dos componentes que o compartilham.
O QUE SÃO OS CONTROLADORES ? Um componente do hardware do computador, como por exemplo a placa gráfica, depende extremamente de um elemento de software, o controlador (driver). Os controladores, tão pequenos que nem sequer atingem a categoria de programas, permitem que os componentes do hardware se vinculem ao sistema operacional de maneira que o software do computador possa gerenciá-los de forma eficiente. Cada programa que precise acessar um componente do hardware do PC fornece as instruções gerais ao S0, que, por meio do controlador adequado, se encarrega de convertê-las em instruções específicas para cada componente. Por exemplo, quando um programa precisa desenhar um círculo na tela, ele envia a ordem ao SO, com as coordenadas do centro e o raio necessários. Cada placa gráfica pode empregar diferentes métodos para desenhar um círculo, motivo pelo qual o SO recolhe a ordem do programa e, por meio do controlador da placa, adapta-a de modo que possa ser interpretada sem problemas. Dessa maneira, faz-se com que os programas não precisem levar em conta os modelos ou as características dos periféricos ou componentes instalados para poder manejá-los, já que o SO se encarrega de fazê-lo por meio dos controladores próprios de cada componente. As sucessivas versões que vão surgindo de todos os elementos de hardware e software de um computador levam os fabricantes a modificar e atualizar continuamente os controladores de seus produtos, tanto para que estes possam aproveitar características acrescentadas quanto para solucionar pequenas anomalias e incompatibilidades de funcionamento dos próprios controladores, que, às vezes, só são detectadas depois que o produto já foi lançado. Em muitas situações, basta atualizar o controlador de uma placa gráfica para que seu desempenho aumente notavelmente. Por isso, é uma boa idéia visitar regularmente os sites que os fabricantes dos componentes mantêm na Web, para verificar se eles lançaram novas versões de seus controladores e, caso positivo, transferi-las por download para instalá-las no PC.
COMO FUNCIONA A TELEVISÃO E VÍDEO EM SISTEMAS DE PLACAS GRÁFICAS? Os primeiros PCs domésticos, sem monitor próprio, usavam a tela de receptores de IV convencionais. Mesmo certos modelos que possuíam o monitor na configuração padrão, como o IBM PC ir., podiam ser vendidos sem ele, numa alternativa que reduzia o preço do equipamento. As resoluções e freqüências das placas gráficas atuais impedem essa prática. Uma tela de IV não tem nem a resolução nem a freqüência mínimas necessárias para reproduzir diretamente uma imagem procedente de um computador. Para se poder ver numa tela de IVa imagem gerada por uma placa de vídeo é preciso contar com um conversor ou adaptador de sinal. Até pouco tempo atrás, os conversores de sinal VGA do PC para televisores ou vídeos PAL eram periféricos externos, conectados à saída da placa gráfica. Com a grande difusão das placas 3-D e, portanto, com o lançamento de uma grande quantidade de jogos espetaculares para PC, muitos fabricantes incorporaram em suas placas gráficas conectores com saída de vídeo com posto PAL, que permitem empregar qualquer IV como tela para jogos. A qualidade desses conversores integrados não costuma ser muito boa; por isso, não é recomendável empregá-los para usar uma tela de IV como área de trabalho. Além dos conectores que fornecem o sinal da saída de vídeo da placa gráfica, é comum também haver linhas de entrada, que possibilitam a visualização ou a captura de imagens de vídeo na área de trabalho do computador. Muitas placas gráficas contam ainda com a possibilidade de incorporar placas ou módulos de expansão, que acrescentam os circuitos de suporte necessários para o tratamento de sinais de vídeo composto e de áudio. As placas para tratamento de vídeo mais avançadas dispõem inclusive de conexões para controlar diversos cinescópios, o que permite ao usuário fazer montagens com o objetivo de modificar e acrescentar efeitos de vídeo e de som.
Use Input – Consultoria
Página 124
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779
O FUNCIONAMENTO DAS INTERFACES DE VÍDEO Não há dúvida em relação à interação homem/máquina que existe, sendo a mesma feita essencialmente através do vídeo. No entanto, o microprocessador não é capaz de criar imagens, somente manipular dados, como bem sabemos. 0 que na verdade faz é definir a imagem como será e enviar os dados relativos a essa imagem a uma interface capaz de gerar imagens — a interface de vídeo. A interface de vídeo, por sua vez, é conectada a um dispositivo capaz de apresentar as imagens por ela geradas — o monitor de vídeo. Quando o processador quer escrever dados na tela (desenhar janelas, por exemplo), ele escreve os dados em um lugar chamado memória de vídeo, que está na interface de vídeo. 0 controlador da interface de vídeo pega os dados presentes na memória de vídeo e os converte em sinais eletrônicos compatíveis com o monitor de vídeo.
O MODO TEXTO Porém, como o microprocessador gera imagens? Desde a primeira interface de vídeo criada pela IBM para o seu primeiro PC — a MDA (Monochrome Display Adapter) —, a maneira com que o microprocessador manipula textos é a mesma. A tela do monitor de vídeo é dividida em 80 colunas por 25 linhas, como se fosse um grande reticulado. Temos, portanto, em uma tela assim constituída, 2.000 posições diferentes. Cada posição será ocupada por uma letra, um número ou um símbolo. Dessa maneira, quando o microprocessador deseja escrever na tela “01!” no canto superior esquerdo, isso significa que ele colocará a letra 0 na primeira coluna da primeira linha, a letra 1 na segunda coluna e finalmente “!“ na terceira coluna. O microprocessador, no entanto, não conseguirá executar essa tarefa, pois o mesmo trabalha somente com números. O microprocessador não sabe o que é um “O”, um “1” ou um “!“. E como resolveremos isso? Isso será facilmente resolvido graças à existência de um padrão de conversão de números em letras (e símbolos diversos), chamado ASCII (American Standard Code for Information Interchange — Código Padrão Americano para a Troca de Informações). Esse código define que cada símbolo capaz de ser apresentado na tela possui um valor numérico correspondente. Assim, a letra O vale 79, a letra 1 vale 73 e o “!“ vale 33. Como tanto o microprocessador quanto a interface de vídeo estarão trabalhando sob um mesmo padrão, eles conseguirão trocar informações satisfatoriamente. Tradicionalmente, o código ASCII (pronuncia-se asquii) é um código de 7 bits. Dessa forma, seria um código capaz de reproduzir 2~ = 128 caracteres diferentes. No entanto, a menor unidade utilizada pelo microprocessador para representar 7 bits seria 8 bits, ou 1 byte. Para não haver desperdício, é adotado em microcomputadores um código ASCII de 8 bits, representando 28 = 256 caracteres diferentes. Para manter compatibilidade com o código ASCII padrão, os valores de O a 127 representam igualmente os caracteres do código ASCII padrão, utilizado por todos os microcomputadores e periféricos. Para valores de 128 a 255 são reproduzidos caracteres especiais, como símbolos gráficos de molduras e letras acentuadas. Dessa maneira, os valores do código ASCII entre 128 e 255 podem variar. Poderemos ter vários códigos ASCII “secundários” para essas posições. Esse código ASCII “estendido” é chamado código de página ou Code Page. Para o padrão PC, internacionalmente utiliza-se no ASCII secundário o código de página 437 (os códigos de página são rotulados por números). No Brasil deveremos utilizar o código de página 850, pois nesse código ASCII secundário é que encontraremos caracteres de letras com acentuaçao. Se cada uma das 2.000 posições linha vs. coluna é preenchida por um número de 8 bits, será necessário um local contendo 2.000 bytes. Esse local chama-se memória de vídeo e está localizado fisicamente na interface de vldeo. Para uma tela texto, necessitamos de 4.000 bytes de memória de vídeo (arredondamos para 4 KB — 4.096 bytes — por ser o valor inteiro mais próximo): 2.000 bytes contendo os caracteres em si e 2.000 bytes contendo os atributos para cada posição. Atributos são indicadores de estado de cada posição, como por exemplo se está sublinhado, piscando, invertido, intensificado, etc. Resumidamente, o microprocessador escreve os dados que queremos que sejam apresentados na tela na memória de vídeo. A interface de vídeo l~ o conteúdo da memória de vídeo e converte o mesmo em sinais elétricos de modo que sejam compreendidos pelo monitor de vídeo. Isso é mais fácil ainda do que você está pensando. Embora a memória de vídeo esteja localizada na própria interface, a mesma é acessada através de um banco de memória dentro do 1 MB que o microprocessador acessa em modo real. Isso significa que o microprocessador acessa facilmente os dados contidos na memória de vídeo. Esse é um processo conhecido como escrita direta em vídeo. Como um banco de memória possui 64 KB e a interface MDA possuía somente 4 KB de memória de vídeo, não havia qualquer problema. A memória de vídeo MDA ocupa o banco 11(B) a partir de B0000h.
MODO GRÁFICO Apesar de poder escrever texto de diversas formas, a interface MDA não permitia que gráficos fossem apresentados. Gráficos e cores só foram possíveis a partir da interface de vídeo CGA (Color Graphics Adapter). Porém, como gráficos podem ser escritos? Apesar de cada uma das 2.000 posições existentes na tela serem rígidas, cada caractere é formado por uma máscara contendo diversos pontos. Para a interface CGA essa máscara era de 8 x 8 pontos. Cada ponto dessa máscara é o menor ponto que pode ser apresentado na tela e recebe o nome de pixel ou pel (picture element). Se cada ponto dessa máscara é o menor ponto que pode ser apresentado, chegaremos àconclusão de que uma interface CGA era capaz de apresentar 80 x 8 = 640 por 25 x 8 = 200 pontos na Use Input – Consultoria
Página 125
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779 tela. Apresentar gráficos consiste somente na capacidade de manipular tais pontos de modo a mostrar uma outra combinação de pontos acesos e apagados, não se prendendo ao código ASCII ou a qualquer outro tipo de código. Para um ponto aceso poderíamos ter um bit “1,’ e para um ponto apagado um bit “0”, de acordo com a posição do ponto dentro da memória de vídeo. No caso da interface CGA, a tela no total possui 640 x 200 = 128.000 pontos. Isso significa que precisaríamos de uma memória de vídeo de 128.000 bits ou 128.000 ÷ 8 = 16.000 bytes (não se esqueça de que 1 byte = 8 bits). A memória de vídeo possui 16 KB (16.384 bytes), o valor inteiro mais próximo. Mas CO~() cores são geradas? Da maneira que apresentamos, explicamos somente a possibilidade de duas condições para cada ponto: aceso (“1”) ou apagado (“0”). Para apresentar cores, precisaríamos de mais memória de vídeo disponível, de modo a armazenar informações de cor. Porém, isso não era possível. A memória de vídeo da interface CGA já havia sido definida: 16 KB. Nesse caso, optou-se por uma saída interessante. Embora a interface de vídeo CGA consiga gerar 16 cores, em sua resolução máxima de 640 x 200 pixels poderíamos ter somente duas cores. Poderíamos programar a interface de vídeo de modo que o “0” não significasse “apagado”, mas sim “aceso com a cor de fundo” (background) e, da mesma maneira, o “1” não significava simplesmente ‘aceso”, mas sim aceso com a cor de frente” (foreground). Assim poderíamos ter um gráfico vermelho sobre um fundo branco. Se em um determinado momento mudássemos a cor de vermelho para azul, todo o gráfico seria imediatamente apresentado em azul sobre um fundo branco. Daí surge uma nota muitíssimo importante de ser notada: apesar de uma interface de vídeo conseguir gerar muitas cores, normalmente não são todas as cores que conseguimos que sejam apresentadas ao mesmo tempo. O universo de cores que a interface de vídeo é capaz de gerar é chamado de palette (aquarela) e a quantidade de cores disponíveis simultaneamente chamamos simplesmente de cores simultâneas. Temos duas maneiras para apresentar mais cores simultâneas: ou aumentamos o tamanho da memória de vídeo (o que era impossível em interfaces CGA) ou diminuímos a resolução, liberando mais memória de vídeo para armazenarmos informações relativas a cor. Assim, poderíamos ter um segundo modo em CGA com a metade da resolução máxima. Esse segundo modo geraria gráficos de 320 x 200 pixels. Isso significa que poderíamos ter quatro cores simultâneas, pois a memória de vídeo necessária agora era 8 KB e possuíamos 16 KB de memória de vídeo na interface. Com isso dobramos a capacidade de cores simultâneas.
A INTERFACE CGA O banco de memória que a MDA ocupava estava amplamente vago. Como a memória de vídeo CGA possuía somente 16 KB, o mesmo banco 11 foi reservado para uso com a CGA, porém a partir de endereço diferente (B8000h).
A INTERFACE HERCULES Interessante notar que a interface MDA gerava cada caractere a partir de uma matriz 9 x 14 pixels. Com isso, chega-se à conclusão de que seus caracteres eram mais “rebuscados” que os apresentados pela interface CGA. E isso é verdade. No entanto, a interface MDA não poderia produzir gráficos. Uma empresa percebeu que, se fosse possível, a interface MDA apresentaria gráficos de 80 x 9 = 720 por 25 x 14 = 350 pixels. Essa empresa concebeu um controlador gráfico de modo a ser conectado a monitores MDA que permitia gerar gráficos de 720 x 350 pixels em preto-e-branco (uma vez que não existiam monitores MDA em cores!). Esse controlador gráfico chamado HGC (Hercules Graphics Controller) tornou-se tão popular que foi o primeiro (e um dos únicos) padrão não-IBM a se popularizar e se firmar no mercado, principalmente por conta dos softwares. Como a interface Hercules (como é mais conhecida) não é um padrão criado pela IBM, quem quisesse criar programas que a utilizassem teria de suprir drivers especiais. Como muitos utilizam o padrão Hercules, a maioria dos programas gráficos o reconhecem (inclusive o Windows). Do ponto de vista técnico, a interface Hercules é somente uma evolução da MDA. A maioria dos programas reconhece a interface Hercules como MDA se nada for dito a respeito. Para que programas de teste de hardware como o Checkit testem a interface Hercules, deveremos executar o driver Hercules que acompanha o DOS, na linha de comando: Msherc. Com o aumento da escala de integração de componentes, as interfaces MDA/Hercules e CGA passaram a ser incorporadas em uma só interface, conhecida como Dual. Essa interface geralmente apresentava também uma porta paralela. Importante notar que, para cada tipo de interface, deveremos ter um tipo de monitor específico. O sucesso do Hercules se deu justamente por esse fato: para utilizarmos a interfaces Hercules não precisaríamos de nenhum gasto adicional com monitor de vídeo: o próprio monitor MDA era utilizado. Tais interfaces Dual permitem que sejam utilizadas como Hercules caso tenhamos um monitor MDA conectado e como CGA caso tenhamos um monitor CGA conectado. Essa seleção é feita através de um jumper na interface. Os monitores MDA/Hercules de última geração eram também “dual”, pois poderiam ser “chaveados” para CGA. Nesse caso, a interface de vídeo era configurada para MDA/Hercules (bem como o setup do microcomputador) e o chaveamento entre MDA/Hercules e CGA era feito através do DOS, utilizando-se o comando Mode: EX.: Mode mono: Coloca a interface e o monitor em modo MDA/Hercules. Mode co8O: Coloca a interface e o monitor em modo CGA. Esse procedimento era de extrema importância, uma vez que nem todos os programas funcionavam no modo Hercules (já que não era padrão IBM). Nesse caso poderíamos tentar executar o programa em modo CGA.
Use Input – Consultoria
Página 126
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779
INTERFACE EGA A interface de vídeo EGA — lançada em conjunto com o PC AT — deu uma nova força aos programas gráficos, principalmente por ser um padrão, aliado ao lançamento da NEC, tradicional fabricante japonês, de um monitor de vídeo chamado Multisync, que permitia diversas resoluções diferentes em um só monitor (algo parecido com o monitor dual). A partir da interface de vídeo EGA, todas as interfaces de vídeo passaram a ter uma ROM própria, de modo a melhor controlar o maior número de cores disponíveis, a maior resolução e, principalmente, a maior quantidade de memória de vídeo que isso implicaria (até então, as interfaces usavam rotinas do próprio BIOS do micro). Dessa forma, todas as interfaces de vídeo modernas possuem ROM, significando que poderemos executar shadow da mesma, conforme a interface. Veremos detalhadamente todos os tipos de interface, portanto não há com o que se preocupar. Os caracteres do modo texto da interface EGA são apresentados em uma matriz 8 x 14. Com isso, a interface EGA permite uma resolução máxima de 640 x 350 pixels, com 16 cores simultâneas de uma palette de 64 cores. Para apresentar esse modo máximo, a interface teria de possuir 256 KB de memória de vídeo, através de uma sobreplaca de expansão de memória que era conectada à mesma. Acontece que só possuímos dois bancos reservados para acesso à memória de vídeo. Com isso, temos uma área de somente 128 KB para acessarmos 256 KB. O acesso à memória de vídeo é feito dividindo-se a mesma em quatro bancos de 64 KB, sendo que somente dois podem ser acessados pelo microprocessador. Quando há a necessidade de se ler ou escrever em um dos bancos que o microprocessador não esteja vendo, ocorre uma troca de bancos, o que faz com que o banco “distante” do microprocessador passe a ser visto pelo mesmo e o banco que estava sendo visto pelo microprocessador passe a estar “distante”. A partir do lançamento da interface EGA e do monitor Multisync da NEC, diversos fabricantes passaram a produzir interfaces de vídeo mais avançadas para microcomputadores do padrão IBM. No entanto, tais inter-faces nunca chegaram a ser massificadas pelo simples fato de serem tecnologias proprietárias e sem divulgação técnica a respeito, o que dificultava programadores a criarem programas para as mesmas. Isso também ocorreu com outros padrões mais avançados lançados mais tarde pela própria IBM. Dentre eles podemos citar o PGA (Professional Graphics Adapter), o MCGA (Memory Controller Gate Array) e o 8514/A. Dos padrões que “deram certo” podemos citar a interface TARGA (Truevision Advanced Raster Graphics Adapter), que permite a captura, a manipulação e a sobreposição de imagens de vídeo.
A INTERFACE VGA O microcomputador lançado em seguida pela IBM era de arquitetura fechada. Para o modelo “topo de linha” do IBM PS/2, havia sido desenvolvido um novo padrão de vídeo: o VGA (Vídeo Graphics Array). Interessante notar que a IBM não lançou a interface VGA, somente o padrão VGA, uma vez que o circuito equivalente a interface de vídeo VGA vinha montado diretamente sobre a placa-mãe do PS/2. Atualmente, o padrão mínimo a ser utilizado em um microcomputador é o VGA. A interface de vídeo VGA permite uma resolução máxima de 640 x 480 pixels, com 16 cores simultâneas de uma pal/ete de 262.144 cores (256 K cores). Em modo texto, os caracteres VGA são apresentados em uma matriz 9 x 16. Da mesma forma que a EGA em sua configuração máxima, a interface de vídeo VGA possui 256 KB de memória de vídeo, sendo necessário troca de bancos para preencher completamente uma tela gráfica. A interface VGA é um marco tão grande que todas as alterações posteriores basearam-se na mesma. E isso é muito importante, pois a interface VGA permitia que programas escritos para interfaces EGA, CGA e MDA fossem executados sem maiores complicações. Os já citados padrões MCGA e 8514/A, por exemplo, baseavam-se no padrão VGA.
A INTERFACE SUPER VGA (SVGA) Chamamos de Super VGA qualquer interface de vídeo que utilize padrões acima do VGA, e que também possuam total compatibilidade com ele. Isso permite que programas incompatíveis com os modos “Super VGA” da interface de vídeo pensem que estão operando com uma simples interface de vídeo VGA, que é padronizada e amplamente utilizada. O grande problema era padronização. Apesar de resoluções como 800 x 600,1024 x 768 e 1280 x 1024 serem comuns em interfaces de vídeo SVGA, cada controlador de vídeo opera de maneiras diferentes, dependendo do fabricante. O grande problema, porém, não diz respeito a sistemas operacionais prontos, como o Windows 3.x, o Windows 9x, o Windows NT e o 0512; inevitavelmente boas interfaces de vídeo virão com um disquete ou CD-ROM contendo diversos drivers para elas. O grande problema diz respeito à criação e elaboração de novos programas. Se um programador quiser escrever um programa utilizando uma resolução de 800 x 600 pixels, ele deverá programar de acordo com a interface de vídeo que ele possua. O programa, se executado utilizando outra interface de vídeo, não funcionará. Um programa escrito para o “modo Super VGA” da interface de vídeo Trident não funcionará em uma interface de vídeo Oak, por exemplo.
O PADRÃO VESA Algo havia de ser feito. Como padronizar o modo Super VGA? A IBM ainda tentou isso em 1990, estipulando o padrão XGA (eXtended Graphics Array). Infelizmente tarde demais, pois já havia muitos fabricantes de interfaces “Super VGA” no mercado e que não estavam nem um pouco interessados em jogar fora todo o trabalho que vinham desenvolvendo para simplesmente aceitar um padrão imposto pela IBM. Os fabricantes de interfices de Use Input – Consultoria
Página 127
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779 vídeo se uniram e criaram uma associação internacional para a padronização de vídeo e afins — a VESA (Video Electronics Standards Association), que congregava na época mais de 150 fabricantes. O primeiro passo da VESA foi padronizar o Super VGA, criando um conjunto de comandos universais que seriam compatíveis com todas as interfaces de vídeo existentes no mercado. Para isso, um driver VESA faria a conversão dos comandos VESA em comandos específicos do controlador de vídeo. Esse driver VESA atualmente vem embutido dentro da memória ROM da interface de vídeo. Você pode verificar se uma interface de vídeo possui o driver VESA embutido, através de programas como PC-Config, PC-Check, Troubleshooter ou mesmo o MSD que acompanha o DOS. Atualmente todas as interfaces de vídeo são Super VGA e todas são compatíveis com o padrão VESA. Drivers de vídeo padrão Super VGA são drivers que operam com comandos VESA, como veremos mais adiante.
O CONTROLADOR DE VÍDEO Classificamos uma interface de vídeo por seu controlador de vídeo (este pode também ser chamado de processador de vídeo ou de chipset de vídeo). Na maioria das vezes, o fabricante da placa de vídeo e o fabricante do controlador de vídeo são distintos. Por esse motivo, na maioria das vezes chamamos uma interface de vídeo por seu controlador e não por seu fabricante. Uma interface que utilize o controlador Trident 9680 pode ser feita pela empresa Janton, porém chamaremos a interface de “Placa Trident 9680”. O mesmo ocorre, por exemplo, no caso das placas produzidas pela Diamond, que em geral utilizam controladores de vídeo da S3. Saber o controlador de vídeo é extremamente importante para configurarmos o vídeo corretamente. O driver de vídeo a ser utilizado no sistema operacional deverá ser específico para o controlador de vídeo, como veremos ainda neste capítulo. O controlador de vídeo é o maior circuito existente na interface de vídeo, conforme você pode conferir na Figura seguinte. No caso, a interface de vídeo utiliza o controlador Trident 9680. Você pode descobrir qual é o controlador de vídeo de uma interface de vídeo simplesmente olhando para ele (maneira mais confiável), porém você também poderá utilizar programas com essa finalidade, como é o caso do PC-Config. Veja, na Figura desta página, na linha “VGA chipset”, que esse programa reconheceu corretamente o controlador de vídeo. Há diversas diferenças entre controladores de fabricantes diferentes e também entre os modelos de um mesmo fabricante. As principais diferenças são as resoluções máximas que o controlador de vfdeo é capaz de gerar no monitor e, principalmente, a velocidade com que o controlador consegue ler dados da memória de vídeo e mostrar na tela, ou seja, desempenho.
NO QUE INFLUENCIA A MEMÓRIA DE VÍDEO? Como não é um padrão, poderemos ter interfaces de vídeo SVGA com os mais diferentes tamanhos de memória de vídeo. Alguns valores típicos são 512 KB, 1 MB, 2 MB, 4 MB ou até mais. Quanto mais memória de vídeo, resoluções mais altas podem ser geradas, além de um maior número de cores simultâneas. A princípio, ter mais memória de vídeo significa desempenho mais baixo. Se você reparar, temos somente dois bancos de 64 KB (totaliUse Input – Consultoria
Página 128
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779 zando 128 KB) disponíveis para acessar a memória de vídeo. O processador acessa a memória de vídeo através da técnica de troca de bancos, fazendo com que a memória de vídeo seja dividida em bancos de 64 KB. Uma interface de vídeo com 1 MB terá sua memória de vídeo dividida em 16 bancos e uma interface com 2 MB de memória de vídeo terá sua memória dividida em 32 bancos. Ou seja, quanto maior o tamanho da memória de vídeo, mais trocas o processador precisará efetuar para acessar toda a memória de vídeo, fazendo com que a taxa de atualização da tela (ou seja, o desempenho) caia consideravelmente. A solução para esse problema é uma técnica chamada abertura de vídeo (ou endereçamento linear) e baseiase em um dado óbvio: a limitação do mapa de memória existe para manter compatibilidade com o XT! Como dificilmente estaremos trabalhando com o processador em modo real hoje em dia, podemos endereçar a memória de vídeo como se ela estivesse localizada após a memória RAM do micro. Afinal, os processadores conseguem acessar até 4 GB de RAM e dificilmente teremos algo perto disso em nosso micro. Em um micro com 8 MB de memória e com interface de vídeo com 1 MB, o processador “pensa” que o micro possui na verdade 9 MB de RAM, acessando a memória de vfdeo linearmente e utilizando instruções de 32 bits, aumentando o desempenho do micro. Esse acesso, apesar de transparente ao usuário, e totalmente mensurável (ver a seção Desempenho adiante). Para que essa técnica seja utilizada, o sistema operacional deverá estar com os drivers da interface de vídeo corretamente instalados. A habilitação desse recurso é automático quando o driver de vídeo está corretamente instalado. Portanto, quando o driver de vídeo está corretamente instalado, ter mais memória de vídeo significa mais desempenho. Como o processador conseguirá acessar a memória de vídeo linearmente, ele poderá utilizar a técnica de tela virtual: enquanto o controlador de vídeo mostra na tela do monitor o conteúdo da memória de vídeo, o processador pode escrever antecipadamente dados em uma porção não utilizada da memória de vídeo. Quando for a hora de o controlador mostrar a próxima tela, o processador não precisará enviar os dados, pois ela já estará armazenada na memória de vídeo, fazendo com que a interface ganhe tempo, aumentando o desempenho do micro. Interfaces de vídeo que utilizem a técnica de endereçamento linear e tela virtual são comumente chamadas de aceleradoras de v(deo. É importante lembrar que, para que essas técnicas sejam utilizadas, o vídeo deve estar corretamente configurado.
COMO A MEMÓRIA SE RELACIONA COM A RESOLUÇÃO? As cores disponíveis estão relacionadas a quantidade de bits com que cada pixel é armazenado dentro da memória de vídeo, conforme nos mostra a tabela. Atualmente o ideal é trabalharmos com a qualidade RGB True Color ou CMYK True Color. 256 cores simultâneas é o mínimo do mínimo para visualizarmos gráficos corretamente. A resolução e a quantidade de cores simultâneas que uma interface de vídeo é capaz de exibir estão relacionadas à quantidade de memória de vídeo que a interface possui. Vocé poderá saber de antemão o quanto de memória de vídeo é necessário para trabalhar em uma determinada resolução. O cálculo é simples: resolução horizontal x resolução vertical x bits por ponto ÷ 8 = quantidade mínima de memória de vídeo Por exemplo, para que você consiga ter a resolução de 640 x 480 em RGB True Color, você precisará de uma interface de vídeo com 640 x 480 x 24 + 8 = 921.600 bytes de memória de vídeo, ou seja, uma interface de vídeo com 1 MB consegue mostrar essa resolução. Já para ter a resolução 800 x 600 em RGB True Color, você precisará de uma interface de vídeo com 800 x 600 x 24 + 8 = 1.440.000 bytes de memória de vídeo, ou seja, uma interface de vídeo com 1 MB nJo consegue mostrar essa resolução (seria necessário uma interface de vídeo com 2 MB de memória). Você pode fazer essa conta livremente. Para facilitar, compilamos uma tabela com a quantidade de memória de vídeo necessária para apresentar as resoluções mais utilizadas em RGB True Color.
BARRAMENTO DE EXPANSÃO PARA PLACAS DE VÍDEO Atualmente encontramos interfaces de vídeo para os seguintes barramentos de expansão: ISA, VLB, PCI, AGP. Para micros modernos aconselhamos o uso de interfaces de vídeo PCI ou mesmo AGP, caso sua placamãe possua esse tipo de barramento . Tome muito cuidado, principalmente em upgrades, para não aproveitar interfaces de vfdeo ISA em micros modernos. No caso de interfaces de vídeo VLB, devemos ter cuidado na hora da aquisição, uma vez que possuímos dois padrões VESA regendo interfaces de vídeo: o padrão VESA para programação (driver VESA ou BIOS VESA) e o padrão VESA de Use Input – Consultoria
Página 129
Curso COMPUTER – INSIGHT
CURSO DE HARDWARE E MONTAGEM – Curso técnico.. Prof.º Adriano Queiroz Sobrinho – Técnico em Informática – Manaus – AM – (092)236-1779
barramento local (VLB). Devemos estar atentos, pois vendedores desinformados poderão vender uma interface de vídeo ISA ou mesmo PCI como sendo “VESA” — pois, a partir do momento em que ela possui driver VESA em ROM, é considerada “VESA”. No momento da aquisição, enfatize que o padrão VESA que você pretende é o de barramento local (VLB). Veja a Figura desta página. Já no caso de interfaces de vídeo PCI, (Figura) 0 cuidado a ser tomado é no tamanho do barramento. Vimos anteriormente que a maioria dos micros utiliza slot PCI de 32 bits. Porém, é comum encontrarmos placas de vídeo PCI para slots PCI de 64 bits e que você poderá comprar por engano. Além disso, muita gente confunde tamanho do barramento de expansão (que, no caso do PCI, é tipicamente de 32 bits) com o tamanho do barramento interno da interface de vídeo (que pode ser de 32 bits, 64 bits, 128 bits ou mesmo mais). Leia o próximo tópico para esclarecer este assunto. A principal característica de uma interface de vídeo AGP (Figura) é o modo em que ela trabalha: xl, x2 ou x4. Apesar de teoricamente o barramento AGP apresentar um desempenho superior ao barramento PCI, na prática você poderá encontrar placas de vídeo PCI mais rápidas do que placas de vídeo AGP. O desempenho de uma placa de vídeo não depende só do barramento de expansão onde ela é instalada, mas também do chipset de vídeo e o tipo de memória de vídeo utilizada. O barramento AGP foi criado para uso exclusivo por placas de vídeo 3D. Dessa forma, toda placa de vídeo AGP é 3D.
BARRAMENTO INTERNO AS PLACAS DE VÍDEO A comunicação do controlador de vídeo com a memória de vídeo não precisa obedecer nenhum padrão específico, a não ser o próprio padrão do controlador. Por esse motivo, é muito comum encontrarmos controladores de vídeo que se comunicam com a memória de vídeo a uma quantidade maior de bits por vez ou então a taxas de clock mais elevadas. Atualmente é comum encontrarmos interfaces de vídeo de “64 bits”, “128 bits”, “256 bits” ou mais. Esses tamanhos de dados referem-se ao barramento interno da placa de vídeo, ou seja, a comunicação que é feita entre o controlador de vídeo e a memória de vídeo, não tendo nenhuma ligação com o barramento de expansão. Há casos em que o barramento de dados interno trabalha em taxas de clock mais elevadas, de modo a obter um desempenho maior. Vários usuários, inclusive, conseguem configurar um overclock no barramento interno da interface de vídeo, aumentando o desempenho do vídeo, especialmente para gráficos.
Use Input – Consultoria
Página 130
Curso COMPUTER – INSIGHT